From d48bae0a1344c477cb040725adf2e7904594b12f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 26 May 2026 05:55:53 +0000 Subject: [PATCH] chore: update API specs and SDK examples --- specs/latest/open-api3-latest-client.json | 936 +- specs/latest/open-api3-latest-console.json | 87324 ++++++++++--------- specs/latest/open-api3-latest-server.json | 2456 +- specs/latest/swagger2-latest-client.json | 934 +- specs/latest/swagger2-latest-console.json | 80116 +++++++++-------- specs/latest/swagger2-latest-server.json | 2858 +- 6 files changed, 91056 insertions(+), 83568 deletions(-) diff --git a/specs/latest/open-api3-latest-client.json b/specs/latest/open-api3-latest-client.json index a5b0f169e..b2c7c1f25 100644 --- a/specs/latest/open-api3-latest-client.json +++ b/specs/latest/open-api3-latest-client.json @@ -17,10 +17,18 @@ }, "servers": [ { - "url": "https:\/\/cloud.appwrite.io\/v1" + "url": "https:\/\/cloud.appwrite.io\/v1", + "description": "Appwrite Cloud endpoint." }, { - "url": "https:\/\/.cloud.appwrite.io\/v1" + "url": "https:\/\/{region}.cloud.appwrite.io\/v1", + "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", + "variables": { + "region": { + "default": "fra", + "description": "Appwrite Cloud region." + } + } } ], "paths": { @@ -48,7 +56,6 @@ "x-appwrite": { "method": "get", "group": "account", - "weight": 9, "cookies": false, "type": "", "demo": "account\/get.md", @@ -99,7 +106,6 @@ "x-appwrite": { "method": "create", "group": "account", - "weight": 8, "cookies": false, "type": "", "demo": "account\/create.md", @@ -151,6 +157,7 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "" } }, @@ -189,7 +196,6 @@ "x-appwrite": { "method": "updateEmail", "group": "account", - "weight": 34, "cookies": false, "type": "", "demo": "account\/update-email.md", @@ -269,7 +275,6 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 47, "cookies": false, "type": "", "demo": "account\/list-identities.md", @@ -341,7 +346,6 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 48, "cookies": false, "type": "", "demo": "account\/delete-identity.md", @@ -406,7 +410,6 @@ "x-appwrite": { "method": "createJWT", "group": "tokens", - "weight": 29, "cookies": false, "type": "", "demo": "account\/create-jwt.md", @@ -442,6 +445,7 @@ "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" } @@ -476,7 +480,6 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 31, "cookies": false, "type": "", "demo": "account\/list-logs.md", @@ -555,7 +558,6 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 165, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -627,7 +629,6 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 167, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -721,8 +722,7 @@ "enum": [ "totp" ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-enum-name": "AuthenticatorType" }, "in": "path" } @@ -751,7 +751,6 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 168, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -849,8 +848,7 @@ "enum": [ "totp" ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-enum-name": "AuthenticatorType" }, "in": "path" } @@ -891,7 +889,6 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 169, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -983,8 +980,7 @@ "enum": [ "totp" ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-enum-name": "AuthenticatorType" }, "in": "path" } @@ -1015,7 +1011,6 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 173, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -1114,8 +1109,7 @@ "totp", "recoverycode" ], - "x-enum-name": "AuthenticationFactor", - "x-enum-keys": [] + "x-enum-name": "AuthenticationFactor" } }, "required": [ @@ -1149,7 +1143,6 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 174, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -1287,7 +1280,6 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 166, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -1388,7 +1380,6 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 172, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -1487,7 +1478,6 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 170, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -1586,7 +1576,6 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 171, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -1687,7 +1676,6 @@ "x-appwrite": { "method": "updateName", "group": "account", - "weight": 32, "cookies": false, "type": "", "demo": "account\/update-name.md", @@ -1759,7 +1747,6 @@ "x-appwrite": { "method": "updatePassword", "group": "account", - "weight": 33, "cookies": false, "type": "", "demo": "account\/update-password.md", @@ -1800,6 +1787,7 @@ "oldPassword": { "type": "string", "description": "Current user password. Must be at least 8 chars.", + "default": "", "x-example": "password", "format": "password" } @@ -1837,7 +1825,6 @@ "x-appwrite": { "method": "updatePhone", "group": "account", - "weight": 35, "cookies": false, "type": "", "demo": "account\/update-phone.md", @@ -1917,7 +1904,6 @@ "x-appwrite": { "method": "getPrefs", "group": "account", - "weight": 30, "cookies": false, "type": "", "demo": "account\/get-prefs.md", @@ -1968,7 +1954,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "account", - "weight": 36, "cookies": false, "type": "", "demo": "account\/update-prefs.md", @@ -2040,7 +2025,6 @@ "x-appwrite": { "method": "createRecovery", "group": "recovery", - "weight": 38, "cookies": false, "type": "", "demo": "account\/create-recovery.md", @@ -2121,7 +2105,6 @@ "x-appwrite": { "method": "updateRecovery", "group": "recovery", - "weight": 39, "cookies": false, "type": "", "demo": "account\/update-recovery.md", @@ -2205,7 +2188,6 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 11, "cookies": false, "type": "", "demo": "account\/list-sessions.md", @@ -2249,7 +2231,6 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 12, "cookies": false, "type": "", "demo": "account\/delete-sessions.md", @@ -2302,7 +2283,6 @@ "x-appwrite": { "method": "createAnonymousSession", "group": "sessions", - "weight": 17, "cookies": false, "type": "", "demo": "account\/create-anonymous-session.md", @@ -2355,7 +2335,6 @@ "x-appwrite": { "method": "createEmailPasswordSession", "group": "sessions", - "weight": 16, "cookies": false, "type": "", "demo": "account\/create-email-password-session.md", @@ -2435,7 +2414,6 @@ "x-appwrite": { "method": "updateMagicURLSession", "group": "sessions", - "weight": 26, "cookies": false, "type": "", "demo": "account\/update-magic-url-session.md", @@ -2510,7 +2488,6 @@ "x-appwrite": { "method": "createOAuth2Session", "group": "sessions", - "weight": 19, "cookies": false, "type": "webAuth", "demo": "account\/create-o-auth-2-session.md", @@ -2590,8 +2567,7 @@ "zoho", "zoom" ], - "x-enum-name": "OAuthProvider", - "x-enum-keys": [] + "x-enum-name": "OAuthProvider" }, "in": "path" }, @@ -2659,7 +2635,6 @@ "x-appwrite": { "method": "updatePhoneSession", "group": "sessions", - "weight": 27, "cookies": false, "type": "", "demo": "account\/update-phone-session.md", @@ -2741,7 +2716,6 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 18, "cookies": false, "type": "", "demo": "account\/create-session.md", @@ -2819,7 +2793,6 @@ "x-appwrite": { "method": "getSession", "group": "sessions", - "weight": 13, "cookies": false, "type": "", "demo": "account\/get-session.md", @@ -2882,7 +2855,6 @@ "x-appwrite": { "method": "updateSession", "group": "sessions", - "weight": 15, "cookies": false, "type": "", "demo": "account\/update-session.md", @@ -2938,7 +2910,6 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 14, "cookies": false, "type": "", "demo": "account\/delete-session.md", @@ -3003,7 +2974,6 @@ "x-appwrite": { "method": "updateStatus", "group": "account", - "weight": 37, "cookies": false, "type": "", "demo": "account\/update-status.md", @@ -3056,7 +3026,6 @@ "x-appwrite": { "method": "createPushTarget", "group": "pushTargets", - "weight": 44, "cookies": false, "type": "", "demo": "account\/create-push-target.md", @@ -3100,6 +3069,7 @@ "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": "" } }, @@ -3137,7 +3107,6 @@ "x-appwrite": { "method": "updatePushTarget", "group": "pushTargets", - "weight": 45, "cookies": false, "type": "", "demo": "account\/update-push-target.md", @@ -3210,7 +3179,6 @@ "x-appwrite": { "method": "deletePushTarget", "group": "pushTargets", - "weight": 46, "cookies": false, "type": "", "demo": "account\/delete-push-target.md", @@ -3273,7 +3241,6 @@ "x-appwrite": { "method": "createEmailToken", "group": "tokens", - "weight": 25, "cookies": false, "type": "", "demo": "account\/create-email-token.md", @@ -3323,6 +3290,7 @@ "phrase": { "type": "boolean", "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "default": false, "x-example": false } }, @@ -3360,7 +3328,6 @@ "x-appwrite": { "method": "createMagicURLToken", "group": "tokens", - "weight": 24, "cookies": false, "type": "", "demo": "account\/create-magic-url-token.md", @@ -3410,12 +3377,14 @@ "url": { "type": "string", "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "default": "", "x-example": "https:\/\/example.com", "format": "url" }, "phrase": { "type": "boolean", "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "default": false, "x-example": false } }, @@ -3446,7 +3415,6 @@ "x-appwrite": { "method": "createOAuth2Token", "group": "tokens", - "weight": 23, "cookies": false, "type": "webAuth", "demo": "account\/create-o-auth-2-token.md", @@ -3526,8 +3494,7 @@ "zoho", "zoom" ], - "x-enum-name": "OAuthProvider", - "x-enum-keys": [] + "x-enum-name": "OAuthProvider" }, "in": "path" }, @@ -3595,7 +3562,6 @@ "x-appwrite": { "method": "createPhoneToken", "group": "tokens", - "weight": 28, "cookies": false, "type": "", "demo": "account\/create-phone-token.md", @@ -3677,7 +3643,6 @@ "x-appwrite": { "method": "createEmailVerification", "group": "verification", - "weight": 40, "cookies": false, "type": "", "demo": "account\/create-email-verification.md", @@ -3800,7 +3765,6 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "verification", - "weight": 41, "cookies": false, "type": "", "demo": "account\/update-email-verification.md", @@ -3934,7 +3898,6 @@ "x-appwrite": { "method": "createPhoneVerification", "group": "verification", - "weight": 42, "cookies": false, "type": "", "demo": "account\/create-phone-verification.md", @@ -3988,7 +3951,6 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "verification", - "weight": 43, "cookies": false, "type": "", "demo": "account\/update-phone-verification.md", @@ -4059,7 +4021,6 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 176, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -4187,7 +4148,6 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 175, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -4321,7 +4281,6 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 179, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -4381,7 +4340,6 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 177, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -4871,7 +4829,6 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 178, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -4955,7 +4912,6 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 181, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -5049,7 +5005,6 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 180, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -5143,7 +5098,6 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 182, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -5241,8 +5195,7 @@ "light", "dark" ], - "x-enum-name": null, - "x-enum-keys": [], + "x-enum-name": "BrowserTheme", "default": "light" }, "in": "query" @@ -5286,7 +5239,7 @@ "required": false, "schema": { "type": "string", - "x-example": "america\/new_york", + "x-example": "America\/New_York", "enum": [ "africa\/abidjan", "africa\/accra", @@ -5708,9 +5661,7 @@ "pacific\/wallis", "utc" ], - "x-enum-name": null, - "x-enum-keys": [], - "default": "" + "x-enum-name": "Timezone" }, "in": "query" }, @@ -5791,8 +5742,7 @@ "web-share", "xr-spatial-tracking" ], - "x-enum-name": "BrowserPermission", - "x-enum-keys": [] + "x-enum-name": "BrowserPermission" }, "x-example": "[\"geolocation\",\"notifications\"]", "default": [] @@ -5863,9 +5813,7 @@ "avif", "gif" ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "" + "x-enum-name": "ImageFormat" }, "in": "query" } @@ -5896,7 +5844,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 774, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -5963,7 +5910,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 770, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -6000,6 +5946,7 @@ "ttl": { "type": "integer", "description": "Seconds before the transaction expires.", + "default": 300, "x-example": 60, "format": "int32" } @@ -6034,7 +5981,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 771, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -6098,7 +6044,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 772, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -6147,11 +6092,13 @@ "commit": { "type": "boolean", "description": "Commit transaction?", + "default": false, "x-example": false }, "rollback": { "type": "boolean", "description": "Rollback transaction?", + "default": false, "x-example": false } } @@ -6176,7 +6123,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 773, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -6242,7 +6188,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 775, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -6291,6 +6236,7 @@ "operations": { "type": "array", "description": "Array of staged operations.", + "default": [], "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" @@ -6327,7 +6273,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 918, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -6451,7 +6396,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 715, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -6551,11 +6495,13 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", "x-example": "" }, "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": { @@ -6570,6 +6516,7 @@ "documents": { "type": "array", "description": "Array of documents data as JSON objects.", + "default": [], "x-example": null, "items": { "type": "object" @@ -6612,7 +6559,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 716, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -6723,7 +6669,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 719, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -6832,6 +6777,7 @@ "data": { "type": "object", "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", + "default": {}, "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { @@ -6878,7 +6824,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 717, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -6951,6 +6896,7 @@ "data": { "type": "object", "description": "Document data as JSON object. Include only attribute 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": { @@ -6990,7 +6936,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 721, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -7097,7 +7042,6 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 726, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -7179,6 +7123,7 @@ "value": { "type": "number", "description": "Value to increment the attribute by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -7226,7 +7171,6 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 725, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -7308,6 +7252,7 @@ "value": { "type": "number", "description": "Value to increment the attribute by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -7355,7 +7300,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 883, "cookies": false, "type": "", "demo": "documentsdb\/list-transactions.md", @@ -7422,7 +7366,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 879, "cookies": false, "type": "", "demo": "documentsdb\/create-transaction.md", @@ -7459,6 +7402,7 @@ "ttl": { "type": "integer", "description": "Seconds before the transaction expires.", + "default": 300, "x-example": 60, "format": "int32" } @@ -7493,7 +7437,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 880, "cookies": false, "type": "", "demo": "documentsdb\/get-transaction.md", @@ -7557,7 +7500,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 881, "cookies": false, "type": "", "demo": "documentsdb\/update-transaction.md", @@ -7606,11 +7548,13 @@ "commit": { "type": "boolean", "description": "Commit transaction?", + "default": false, "x-example": false }, "rollback": { "type": "boolean", "description": "Rollback transaction?", + "default": false, "x-example": false } } @@ -7635,7 +7579,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 882, "cookies": false, "type": "", "demo": "documentsdb\/delete-transaction.md", @@ -7701,7 +7644,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 884, "cookies": false, "type": "", "demo": "documentsdb\/create-operations.md", @@ -7749,6 +7691,7 @@ "operations": { "type": "array", "description": "Array of staged operations.", + "default": [], "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" @@ -7785,7 +7728,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 919, "cookies": false, "type": "", "demo": "documentsdb\/list-documents.md", @@ -7905,7 +7847,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 868, "cookies": false, "type": "", "demo": "documentsdb\/create-document.md", @@ -8023,11 +7964,13 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", "x-example": "" }, "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": { @@ -8041,6 +7984,7 @@ "documents": { "type": "array", "description": "Array of documents data as JSON objects.", + "default": [], "x-example": null, "items": { "type": "object" @@ -8082,7 +8026,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 869, "cookies": false, "type": "", "demo": "documentsdb\/get-document.md", @@ -8189,7 +8132,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 872, "cookies": false, "type": "", "demo": "documentsdb\/upsert-document.md", @@ -8290,6 +8232,7 @@ "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": { @@ -8334,7 +8277,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 870, "cookies": false, "type": "", "demo": "documentsdb\/update-document.md", @@ -8403,6 +8345,7 @@ "data": { "type": "object", "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "default": {}, "x-example": "{}" }, "permissions": { @@ -8440,7 +8383,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 874, "cookies": false, "type": "", "demo": "documentsdb\/delete-document.md", @@ -8542,7 +8484,6 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 878, "cookies": false, "type": "", "demo": "documentsdb\/decrement-document-attribute.md", @@ -8620,6 +8561,7 @@ "value": { "type": "number", "description": "Value to decrement the attribute by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -8665,7 +8607,6 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 877, "cookies": false, "type": "", "demo": "documentsdb\/increment-document-attribute.md", @@ -8743,6 +8684,7 @@ "value": { "type": "number", "description": "Value to increment the attribute by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -8788,7 +8730,6 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 441, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -8878,7 +8819,6 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 439, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -8929,21 +8869,25 @@ "body": { "type": "string", "description": "HTTP body of execution. Default value is empty string.", + "default": "", "x-example": "" }, "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": "" }, "method": { "type": "string", "description": "HTTP method of execution. Default value is POST.", + "default": "POST", "x-example": "GET", "enum": [ "GET", @@ -8954,12 +8898,12 @@ "OPTIONS", "HEAD" ], - "x-enum-name": "ExecutionMethod", - "x-enum-keys": [] + "x-enum-name": "ExecutionMethod" }, "headers": { "type": "object", "description": "HTTP headers of execution. Defaults to empty.", + "default": {}, "x-example": "{}" }, "scheduledAt": { @@ -8999,7 +8943,6 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 440, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -9077,7 +9020,6 @@ "x-appwrite": { "method": "query", "group": "graphql", - "weight": 116, "cookies": false, "type": "graphql", "demo": "graphql\/query.md", @@ -9131,7 +9073,6 @@ "x-appwrite": { "method": "mutation", "group": "graphql", - "weight": 115, "cookies": false, "type": "graphql", "demo": "graphql\/mutation.md", @@ -9185,7 +9126,6 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 49, "cookies": false, "type": "", "demo": "locale\/get.md", @@ -9239,7 +9179,6 @@ "x-appwrite": { "method": "listCodes", "group": null, - "weight": 50, "cookies": false, "type": "", "demo": "locale\/list-codes.md", @@ -9293,7 +9232,6 @@ "x-appwrite": { "method": "listContinents", "group": null, - "weight": 54, "cookies": false, "type": "", "demo": "locale\/list-continents.md", @@ -9347,7 +9285,6 @@ "x-appwrite": { "method": "listCountries", "group": null, - "weight": 51, "cookies": false, "type": "", "demo": "locale\/list-countries.md", @@ -9401,7 +9338,6 @@ "x-appwrite": { "method": "listCountriesEU", "group": null, - "weight": 52, "cookies": false, "type": "", "demo": "locale\/list-countries-eu.md", @@ -9455,7 +9391,6 @@ "x-appwrite": { "method": "listCountriesPhones", "group": null, - "weight": 53, "cookies": false, "type": "", "demo": "locale\/list-countries-phones.md", @@ -9509,7 +9444,6 @@ "x-appwrite": { "method": "listCurrencies", "group": null, - "weight": 55, "cookies": false, "type": "", "demo": "locale\/list-currencies.md", @@ -9563,7 +9497,6 @@ "x-appwrite": { "method": "listLanguages", "group": null, - "weight": 56, "cookies": false, "type": "", "demo": "locale\/list-languages.md", @@ -9617,7 +9550,6 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 149, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -9701,7 +9633,6 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 153, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -9777,7 +9708,6 @@ "x-appwrite": { "method": "list", "group": "presences", - "weight": 419, "cookies": false, "type": "", "demo": "presences\/list.md", @@ -9869,7 +9799,6 @@ "x-appwrite": { "method": "get", "group": "presences", - "weight": 418, "cookies": false, "type": "", "demo": "presences\/get.md", @@ -9933,7 +9862,6 @@ "x-appwrite": { "method": "upsert", "group": "presences", - "weight": 416, "cookies": false, "type": "", "demo": "presences\/upsert.md", @@ -10032,6 +9960,7 @@ "metadata": { "type": "object", "description": "Presence metadata object.", + "default": {}, "x-example": "{}" } }, @@ -10066,7 +9995,6 @@ "x-appwrite": { "method": "update", "group": "presences", - "weight": 420, "cookies": false, "type": "", "demo": "presences\/update.md", @@ -10170,6 +10098,7 @@ "purge": { "type": "boolean", "description": "When true, purge cached responses used by list presences endpoint.", + "default": false, "x-example": false } } @@ -10194,7 +10123,6 @@ "x-appwrite": { "method": "delete", "group": "presences", - "weight": 421, "cookies": false, "type": "", "demo": "presences\/delete.md", @@ -10236,318 +10164,6 @@ ] } }, - "\/reports": { - "get": { - "summary": "List reports", - "operationId": "advisorListReports", - "tags": [ - "advisor" - ], - "description": "Get a list of all the project's analyzer reports. You can use the query params to filter your results.\n", - "responses": { - "200": { - "description": "Reports List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/reportList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listReports", - "group": "reports", - "weight": 695, - "cookies": false, - "type": "", - "demo": "advisor\/list-reports.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-reports.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). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: appId, type, targetType, target, analyzedAt", - "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" - } - ] - } - }, - "\/reports\/{reportId}": { - "get": { - "summary": "Get report", - "operationId": "advisorGetReport", - "tags": [ - "advisor" - ], - "description": "Get an analyzer report by its unique ID. The response includes the report's metadata and the nested insights it produced.\n", - "responses": { - "200": { - "description": "Report", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/report" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getReport", - "group": "reports", - "weight": 694, - "cookies": false, - "type": "", - "demo": "advisor\/get-report.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-report.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Report ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] - } - }, - "\/reports\/{reportId}\/insights": { - "get": { - "summary": "List insights", - "operationId": "advisorListInsights", - "tags": [ - "advisor" - ], - "description": "List the insights produced under a single analyzer report. You can use the query params to filter your results further.\n", - "responses": { - "200": { - "description": "Insights List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/insightList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listInsights", - "group": "insights", - "weight": 698, - "cookies": false, - "type": "", - "demo": "advisor\/list-insights.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-insights.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Parent report 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: type, severity, status, resourceType, resourceId, parentResourceType, parentResourceId, analyzedAt, dismissedAt, dismissedBy", - "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" - } - ] - } - }, - "\/reports\/{reportId}\/insights\/{insightId}": { - "get": { - "summary": "Get insight", - "operationId": "advisorGetInsight", - "tags": [ - "advisor" - ], - "description": "Get an insight by its unique ID, scoped to its parent report.\n", - "responses": { - "200": { - "description": "Insight", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/insight" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getInsight", - "group": "insights", - "weight": 697, - "cookies": false, - "type": "", - "demo": "advisor\/get-insight.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-insight.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Parent report ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "insightId", - "description": "Insight ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] - } - }, "\/storage\/buckets\/{bucketId}\/files": { "get": { "summary": "List files", @@ -10572,7 +10188,6 @@ "x-appwrite": { "method": "listFiles", "group": "files", - "weight": 555, "cookies": false, "type": "", "demo": "storage\/list-files.md", @@ -10671,7 +10286,6 @@ "x-appwrite": { "method": "createFile", "group": "files", - "weight": 1208, "cookies": false, "type": "upload", "demo": "storage\/create-file.md", @@ -10773,7 +10387,6 @@ "x-appwrite": { "method": "getFile", "group": "files", - "weight": 554, "cookies": false, "type": "", "demo": "storage\/get-file.md", @@ -10847,7 +10460,6 @@ "x-appwrite": { "method": "updateFile", "group": "files", - "weight": 556, "cookies": false, "type": "", "demo": "storage\/update-file.md", @@ -10939,7 +10551,6 @@ "x-appwrite": { "method": "deleteFile", "group": "files", - "weight": 557, "cookies": false, "type": "", "demo": "storage\/delete-file.md", @@ -11008,7 +10619,6 @@ "x-appwrite": { "method": "getFileDownload", "group": "files", - "weight": 559, "cookies": false, "type": "location", "demo": "storage\/get-file-download.md", @@ -11088,7 +10698,6 @@ "x-appwrite": { "method": "getFilePreview", "group": "files", - "weight": 558, "cookies": false, "type": "location", "demo": "storage\/get-file-preview.md", @@ -11180,7 +10789,6 @@ "bottom-right" ], "x-enum-name": "ImageGravity", - "x-enum-keys": [], "default": "center" }, "in": "query" @@ -11281,9 +10889,7 @@ "avif", "gif" ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "" + "x-enum-name": "ImageFormat" }, "in": "query" }, @@ -11318,7 +10924,6 @@ "x-appwrite": { "method": "getFileView", "group": "files", - "weight": 560, "cookies": false, "type": "location", "demo": "storage\/get-file-view.md", @@ -11405,7 +11010,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 849, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -11475,7 +11079,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 845, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -11515,6 +11118,7 @@ "ttl": { "type": "integer", "description": "Seconds before the transaction expires.", + "default": 300, "x-example": 60, "format": "int32" } @@ -11549,7 +11153,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 846, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -11616,7 +11219,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 847, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -11668,11 +11270,13 @@ "commit": { "type": "boolean", "description": "Commit transaction?", + "default": false, "x-example": false }, "rollback": { "type": "boolean", "description": "Rollback transaction?", + "default": false, "x-example": false } } @@ -11697,7 +11301,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 848, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -11766,7 +11369,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 850, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -11818,6 +11420,7 @@ "operations": { "type": "array", "description": "Array of staged operations.", + "default": [], "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" @@ -11854,7 +11457,6 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 920, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -11977,7 +11579,6 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 833, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -12072,11 +11673,13 @@ "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": "" }, "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": { @@ -12091,6 +11694,7 @@ "rows": { "type": "array", "description": "Array of rows data as JSON objects.", + "default": [], "x-example": null, "items": { "type": "object" @@ -12133,7 +11737,6 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 834, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -12243,7 +11846,6 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 837, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -12347,6 +11949,7 @@ "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": { @@ -12393,7 +11996,6 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 835, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -12465,6 +12067,7 @@ "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": { @@ -12504,7 +12107,6 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 839, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -12610,7 +12212,6 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 844, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -12691,6 +12292,7 @@ "value": { "type": "number", "description": "Value to increment the column by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -12738,7 +12340,6 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 843, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -12819,6 +12420,7 @@ "value": { "type": "number", "description": "Value to increment the column by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -12866,7 +12468,6 @@ "x-appwrite": { "method": "list", "group": "teams", - "weight": 531, "cookies": false, "type": "", "demo": "teams\/list.md", @@ -12955,7 +12556,6 @@ "x-appwrite": { "method": "create", "group": "teams", - "weight": 529, "cookies": false, "type": "", "demo": "teams\/create.md", @@ -13002,6 +12602,9 @@ "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" @@ -13042,7 +12645,6 @@ "x-appwrite": { "method": "get", "group": "teams", - "weight": 530, "cookies": false, "type": "", "demo": "teams\/get.md", @@ -13106,7 +12708,6 @@ "x-appwrite": { "method": "updateName", "group": "teams", - "weight": 533, "cookies": false, "type": "", "demo": "teams\/update-name.md", @@ -13182,7 +12783,6 @@ "x-appwrite": { "method": "delete", "group": "teams", - "weight": 532, "cookies": false, "type": "", "demo": "teams\/delete.md", @@ -13248,7 +12848,6 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 538, "cookies": false, "type": "", "demo": "teams\/list-memberships.md", @@ -13347,7 +12946,6 @@ "x-appwrite": { "method": "createMembership", "group": "memberships", - "weight": 536, "cookies": false, "type": "", "demo": "teams\/create-membership.md", @@ -13396,17 +12994,20 @@ "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": "" }, "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" }, @@ -13421,12 +13022,14 @@ "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": "" } }, @@ -13463,7 +13066,6 @@ "x-appwrite": { "method": "getMembership", "group": "memberships", - "weight": 537, "cookies": false, "type": "", "demo": "teams\/get-membership.md", @@ -13537,7 +13139,6 @@ "x-appwrite": { "method": "updateMembership", "group": "memberships", - "weight": 539, "cookies": false, "type": "", "demo": "teams\/update-membership.md", @@ -13626,7 +13227,6 @@ "x-appwrite": { "method": "deleteMembership", "group": "memberships", - "weight": 1209, "cookies": false, "type": "", "demo": "teams\/delete-membership.md", @@ -13702,7 +13302,6 @@ "x-appwrite": { "method": "updateMembershipStatus", "group": "memberships", - "weight": 541, "cookies": false, "type": "", "demo": "teams\/update-membership-status.md", @@ -13802,7 +13401,6 @@ "x-appwrite": { "method": "getPrefs", "group": "teams", - "weight": 534, "cookies": false, "type": "", "demo": "teams\/get-prefs.md", @@ -13865,7 +13463,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "teams", - "weight": 535, "cookies": false, "type": "", "demo": "teams\/update-prefs.md", @@ -13949,7 +13546,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 916, "cookies": false, "type": "", "demo": "vectorsdb\/list-transactions.md", @@ -14016,7 +13612,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 912, "cookies": false, "type": "", "demo": "vectorsdb\/create-transaction.md", @@ -14053,6 +13648,7 @@ "ttl": { "type": "integer", "description": "Seconds before the transaction expires.", + "default": 300, "x-example": 60, "format": "int32" } @@ -14087,7 +13683,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 913, "cookies": false, "type": "", "demo": "vectorsdb\/get-transaction.md", @@ -14151,7 +13746,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 914, "cookies": false, "type": "", "demo": "vectorsdb\/update-transaction.md", @@ -14200,11 +13794,13 @@ "commit": { "type": "boolean", "description": "Commit transaction?", + "default": false, "x-example": false }, "rollback": { "type": "boolean", "description": "Rollback transaction?", + "default": false, "x-example": false } } @@ -14229,7 +13825,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 915, "cookies": false, "type": "", "demo": "vectorsdb\/delete-transaction.md", @@ -14295,7 +13890,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 917, "cookies": false, "type": "", "demo": "vectorsdb\/create-operations.md", @@ -14344,6 +13938,7 @@ "operations": { "type": "array", "description": "Array of staged operations.", + "default": [], "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" @@ -14380,7 +13975,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 906, "cookies": false, "type": "", "demo": "vectorsdb\/list-documents.md", @@ -14500,7 +14094,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 902, "cookies": false, "type": "", "demo": "vectorsdb\/create-document.md", @@ -14591,11 +14184,13 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", "x-example": "" }, "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": { @@ -14609,6 +14204,7 @@ "documents": { "type": "array", "description": "Array of documents data as JSON objects.", + "default": [], "x-example": null, "items": { "type": "object" @@ -14650,7 +14246,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 905, "cookies": false, "type": "", "demo": "vectorsdb\/get-document.md", @@ -14757,7 +14352,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 904, "cookies": false, "type": "", "demo": "vectorsdb\/upsert-document.md", @@ -14858,6 +14452,7 @@ "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": { @@ -14902,7 +14497,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 903, "cookies": false, "type": "", "demo": "vectorsdb\/update-document.md", @@ -14971,6 +14565,7 @@ "data": { "type": "object", "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "default": {}, "x-example": "{}" }, "permissions": { @@ -15008,7 +14603,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 907, "cookies": false, "type": "", "demo": "vectorsdb\/delete-document.md", @@ -15683,62 +15277,6 @@ "transactions": "" } }, - "insightList": { - "description": "Insights List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of insights that matched your query.", - "x-example": 5, - "format": "int32" - }, - "insights": { - "type": "array", - "description": "List of insights.", - "items": { - "$ref": "#\/components\/schemas\/insight" - }, - "x-example": "" - } - }, - "required": [ - "total", - "insights" - ], - "example": { - "total": 5, - "insights": "" - } - }, - "reportList": { - "description": "Reports List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of reports that matched your query.", - "x-example": 5, - "format": "int32" - }, - "reports": { - "type": "array", - "description": "List of reports.", - "items": { - "$ref": "#\/components\/schemas\/report" - }, - "x-example": "" - } - }, - "required": [ - "total", - "reports" - ], - "example": { - "total": 5, - "reports": "" - } - }, "row": { "description": "Row", "type": "object", @@ -17049,6 +16587,12 @@ "x-example": 17890, "format": "int32" }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "x-example": 12345, + "format": "int32" + }, "chunksTotal": { "type": "integer", "description": "Total number of chunks available", @@ -17082,6 +16626,7 @@ "signature", "mimeType", "sizeOriginal", + "sizeActual", "chunksTotal", "chunksUploaded", "encryption", @@ -17099,6 +16644,7 @@ "signature": "5d529fd02b544198ae075bd57c1762bb", "mimeType": "image\/png", "sizeOriginal": 17890, + "sizeActual": 12345, "chunksTotal": 17890, "chunksUploaded": 17890, "encryption": true, @@ -18001,298 +17547,6 @@ "identifier": "token", "expired": false } - }, - "insight": { - "description": "Insight", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Insight ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Insight creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Insight update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "reportId": { - "type": "string", - "description": "Parent report ID. Insights always belong to a report.", - "x-example": "5e5ea5c16897e" - }, - "type": { - "type": "string", - "description": "Insight type. One of databaseIndex (legacy), tablesDBIndex, documentsDBIndex, vectorsDBIndex, databasePerformance, sitePerformance, siteAccessibility, siteSeo, functionPerformance. The index types are engine-specific so each CTA can pair the right service+method (databases.createIndex, tablesDB.createIndex, documentsDB.createIndex, or vectorsDB.createIndex).", - "x-example": "tablesDBIndex" - }, - "severity": { - "type": "string", - "description": "Insight severity. One of info, warning, critical.", - "x-example": "warning" - }, - "status": { - "type": "string", - "description": "Insight status. One of active, dismissed.", - "x-example": "active" - }, - "resourceType": { - "type": "string", - "description": "Type of the resource the insight is about. Plural noun, e.g. databases, sites, functions.", - "x-example": "databases" - }, - "resourceId": { - "type": "string", - "description": "ID of the resource the insight is about.", - "x-example": "main" - }, - "parentResourceType": { - "type": "string", - "description": "Plural noun for the parent resource that contains the insight's resource, e.g. an insight about a column index on a table \u2192 resourceType=indexes, parentResourceType=tables. Empty when the resource has no parent.", - "x-example": "tables" - }, - "parentResourceId": { - "type": "string", - "description": "ID of the parent resource. Empty when the resource has no parent.", - "x-example": "orders" - }, - "title": { - "type": "string", - "description": "Insight title.", - "x-example": "Missing index on collection orders" - }, - "summary": { - "type": "string", - "description": "Short markdown summary describing the insight.", - "x-example": "Queries against `orders.status` are scanning the full collection." - }, - "ctas": { - "type": "array", - "description": "List of call-to-action buttons attached to this insight.", - "items": { - "$ref": "#\/components\/schemas\/insightCTA" - }, - "x-example": [] - }, - "analyzedAt": { - "type": "string", - "description": "Time the insight was analyzed in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "dismissedAt": { - "type": "string", - "description": "Time the insight was dismissed in ISO 8601 format. Empty when not dismissed.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - }, - "dismissedBy": { - "type": "string", - "description": "User ID that dismissed the insight. Empty when not dismissed.", - "x-example": "5e5ea5c16897e", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "reportId", - "type", - "severity", - "status", - "resourceType", - "resourceId", - "parentResourceType", - "parentResourceId", - "title", - "summary", - "ctas" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "reportId": "5e5ea5c16897e", - "type": "tablesDBIndex", - "severity": "warning", - "status": "active", - "resourceType": "databases", - "resourceId": "main", - "parentResourceType": "tables", - "parentResourceId": "orders", - "title": "Missing index on collection orders", - "summary": "Queries against `orders.status` are scanning the full collection.", - "ctas": [], - "analyzedAt": "2020-10-15T06:38:00.000+00:00", - "dismissedAt": "2020-10-15T06:38:00.000+00:00", - "dismissedBy": "5e5ea5c16897e" - } - }, - "insightCTA": { - "description": "InsightCTA", - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Human-readable label for the CTA, used in UI.", - "x-example": "Create missing index" - }, - "service": { - "type": "string", - "description": "Public API service (SDK namespace) the client should invoke. Must match the engine that owns the resource \u2014 for index suggestions: databases (legacy), tablesDB, documentsDB, or vectorsDB.", - "x-example": "tablesDB" - }, - "method": { - "type": "string", - "description": "Public API method on the chosen service the client should invoke when this CTA is triggered.", - "x-example": "createIndex" - }, - "params": { - "type": "object", - "description": "Parameter map the client should pass to the service method when this CTA is triggered. Keys match the target API's parameter names (e.g. databaseId\/tableId\/columns for tablesDB, databaseId\/collectionId\/attributes for the legacy Databases API).", - "x-example": { - "databaseId": "main", - "tableId": "orders", - "key": "_idx_status", - "type": "key", - "columns": [ - "status" - ] - } - } - }, - "required": [ - "label", - "service", - "method", - "params" - ], - "example": { - "label": "Create missing index", - "service": "tablesDB", - "method": "createIndex", - "params": { - "databaseId": "main", - "tableId": "orders", - "key": "_idx_status", - "type": "key", - "columns": [ - "status" - ] - } - } - }, - "report": { - "description": "Report", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Report ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Report creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Report update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "ID of the third-party app that submitted the report.", - "x-example": "5e5ea5c16897e" - }, - "type": { - "type": "string", - "description": "Analyzer that produced this report. e.g. lighthouse, audit, databaseAnalyzer.", - "x-example": "lighthouse" - }, - "title": { - "type": "string", - "description": "Short, human-readable title for the report.", - "x-example": "Lighthouse audit for https:\/\/appwrite.io\/" - }, - "summary": { - "type": "string", - "description": "Markdown summary describing the report.", - "x-example": "Performance score 78. 4 opportunities found." - }, - "targetType": { - "type": "string", - "description": "Plural noun describing what the report analyzes, e.g. databases, sites, urls.", - "x-example": "urls" - }, - "target": { - "type": "string", - "description": "Free-form target identifier (URL for lighthouse, resource ID for db).", - "x-example": "https:\/\/appwrite.io\/" - }, - "categories": { - "type": "array", - "description": "Categories covered by the report, e.g. performance, accessibility.", - "items": { - "type": "string" - }, - "x-example": [ - "performance", - "accessibility" - ] - }, - "insights": { - "type": "array", - "description": "Insights nested under this report.", - "items": { - "$ref": "#\/components\/schemas\/insight" - }, - "x-example": [] - }, - "analyzedAt": { - "type": "string", - "description": "Time the report was analyzed in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "type", - "title", - "summary", - "targetType", - "target", - "categories", - "insights" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "type": "lighthouse", - "title": "Lighthouse audit for https:\/\/appwrite.io\/", - "summary": "Performance score 78. 4 opportunities found.", - "targetType": "urls", - "target": "https:\/\/appwrite.io\/", - "categories": [ - "performance", - "accessibility" - ], - "insights": [], - "analyzedAt": "2020-10-15T06:38:00.000+00:00" - } } }, "securitySchemes": { diff --git a/specs/latest/open-api3-latest-console.json b/specs/latest/open-api3-latest-console.json index ef6a1fec7..7f954023f 100644 --- a/specs/latest/open-api3-latest-console.json +++ b/specs/latest/open-api3-latest-console.json @@ -17,10 +17,18 @@ }, "servers": [ { - "url": "https:\/\/cloud.appwrite.io\/v1" + "url": "https:\/\/cloud.appwrite.io\/v1", + "description": "Appwrite Cloud endpoint." }, { - "url": "https:\/\/.cloud.appwrite.io\/v1" + "url": "https:\/\/{region}.cloud.appwrite.io\/v1", + "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", + "variables": { + "region": { + "default": "fra", + "description": "Appwrite Cloud region." + } + } } ], "paths": { @@ -48,7 +56,6 @@ "x-appwrite": { "method": "get", "group": "account", - "weight": 9, "cookies": false, "type": "", "demo": "account\/get.md", @@ -99,7 +106,6 @@ "x-appwrite": { "method": "create", "group": "account", - "weight": 8, "cookies": false, "type": "", "demo": "account\/create.md", @@ -151,6 +157,7 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "" } }, @@ -180,7 +187,6 @@ "x-appwrite": { "method": "delete", "group": "account", - "weight": 10, "cookies": false, "type": "", "demo": "account\/delete.md", @@ -229,7 +235,6 @@ "x-appwrite": { "method": "listBillingAddresses", "group": null, - "weight": 1096, "cookies": false, "type": "", "demo": "account\/list-billing-addresses.md", @@ -277,7 +282,7 @@ "description": "Add a new billing address to a user's account.", "responses": { "201": { - "description": "BillingAddress", + "description": "Address", "content": { "application\/json": { "schema": { @@ -291,7 +296,6 @@ "x-appwrite": { "method": "createBillingAddress", "group": null, - "weight": 1094, "cookies": false, "type": "", "demo": "account\/create-billing-address.md", @@ -338,16 +342,19 @@ "addressLine2": { "type": "string", "description": "Address line 2", + "default": "", "x-example": "" }, "state": { "type": "string", "description": "State or province", + "default": "", "x-example": "" }, "postalCode": { "type": "string", "description": "Postal code", + "default": "", "x-example": "" } }, @@ -372,7 +379,7 @@ "description": "Get a specific billing address for a user using it's ID.", "responses": { "200": { - "description": "BillingAddress", + "description": "Address", "content": { "application\/json": { "schema": { @@ -386,7 +393,6 @@ "x-appwrite": { "method": "getBillingAddress", "group": null, - "weight": 1095, "cookies": false, "type": "", "demo": "account\/get-billing-address.md", @@ -431,7 +437,7 @@ "description": "Update a specific billing address using it's ID.", "responses": { "200": { - "description": "BillingAddress", + "description": "Address", "content": { "application\/json": { "schema": { @@ -445,7 +451,6 @@ "x-appwrite": { "method": "updateBillingAddress", "group": null, - "weight": 1097, "cookies": false, "type": "", "demo": "account\/update-billing-address.md", @@ -504,16 +509,19 @@ "addressLine2": { "type": "string", "description": "Address line 2", + "default": "", "x-example": "" }, "state": { "type": "string", "description": "State or province", + "default": "", "x-example": "" }, "postalCode": { "type": "string", "description": "Postal code", + "default": "", "x-example": "" } }, @@ -543,7 +551,6 @@ "x-appwrite": { "method": "deleteBillingAddress", "group": null, - "weight": 1098, "cookies": false, "type": "", "demo": "account\/delete-billing-address.md", @@ -604,7 +611,6 @@ "x-appwrite": { "method": "getCoupon", "group": null, - "weight": 1100, "cookies": false, "type": "", "demo": "account\/get-coupon.md", @@ -665,7 +671,6 @@ "x-appwrite": { "method": "updateEmail", "group": "account", - "weight": 34, "cookies": false, "type": "", "demo": "account\/update-email.md", @@ -745,7 +750,6 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 47, "cookies": false, "type": "", "demo": "account\/list-identities.md", @@ -817,7 +821,6 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 48, "cookies": false, "type": "", "demo": "account\/delete-identity.md", @@ -882,7 +885,6 @@ "x-appwrite": { "method": "listInvoices", "group": null, - "weight": 1099, "cookies": false, "type": "", "demo": "account\/list-invoices.md", @@ -946,7 +948,6 @@ "x-appwrite": { "method": "createJWT", "group": "tokens", - "weight": 29, "cookies": false, "type": "", "demo": "account\/create-jwt.md", @@ -982,6 +983,7 @@ "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" } @@ -1016,7 +1018,6 @@ "x-appwrite": { "method": "listKeys", "group": "keys", - "weight": 1082, "cookies": false, "type": "", "demo": "account\/list-keys.md", @@ -1075,7 +1076,6 @@ "x-appwrite": { "method": "createKey", "group": "keys", - "weight": 1083, "cookies": false, "type": "", "demo": "account\/create-key.md", @@ -1119,8 +1119,7 @@ "teams.read", "teams.write" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "AccountKeyScopes" } }, "expire": { @@ -1165,7 +1164,6 @@ "x-appwrite": { "method": "getKey", "group": "keys", - "weight": 1086, "cookies": false, "type": "", "demo": "account\/get-key.md", @@ -1223,7 +1221,6 @@ "x-appwrite": { "method": "updateKey", "group": "keys", - "weight": 1085, "cookies": false, "type": "", "demo": "account\/update-key.md", @@ -1279,8 +1276,7 @@ "teams.read", "teams.write" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "AccountKeyScopes" } }, "expire": { @@ -1316,7 +1312,6 @@ "x-appwrite": { "method": "deleteKey", "group": "keys", - "weight": 1084, "cookies": false, "type": "", "demo": "account\/delete-key.md", @@ -1376,7 +1371,6 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 31, "cookies": false, "type": "", "demo": "account\/list-logs.md", @@ -1455,7 +1449,6 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 165, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -1527,7 +1520,6 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 167, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -1621,8 +1613,7 @@ "enum": [ "totp" ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-enum-name": "AuthenticatorType" }, "in": "path" } @@ -1651,7 +1642,6 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 168, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -1749,8 +1739,7 @@ "enum": [ "totp" ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-enum-name": "AuthenticatorType" }, "in": "path" } @@ -1791,7 +1780,6 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 169, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -1883,8 +1871,7 @@ "enum": [ "totp" ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-enum-name": "AuthenticatorType" }, "in": "path" } @@ -1915,7 +1902,6 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 173, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -2014,8 +2000,7 @@ "totp", "recoverycode" ], - "x-enum-name": "AuthenticationFactor", - "x-enum-keys": [] + "x-enum-name": "AuthenticationFactor" } }, "required": [ @@ -2049,7 +2034,6 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 174, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -2187,7 +2171,6 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 166, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -2288,7 +2271,6 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 172, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -2387,7 +2369,6 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 170, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -2486,7 +2467,6 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 171, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -2587,7 +2567,6 @@ "x-appwrite": { "method": "updateName", "group": "account", - "weight": 32, "cookies": false, "type": "", "demo": "account\/update-name.md", @@ -2659,7 +2638,6 @@ "x-appwrite": { "method": "updatePassword", "group": "account", - "weight": 33, "cookies": false, "type": "", "demo": "account\/update-password.md", @@ -2700,6 +2678,7 @@ "oldPassword": { "type": "string", "description": "Current user password. Must be at least 8 chars.", + "default": "", "x-example": "password", "format": "password" } @@ -2737,7 +2716,6 @@ "x-appwrite": { "method": "listPaymentMethods", "group": null, - "weight": 1089, "cookies": false, "type": "", "demo": "account\/list-payment-methods.md", @@ -2799,7 +2777,6 @@ "x-appwrite": { "method": "createPaymentMethod", "group": null, - "weight": 1087, "cookies": false, "type": "", "demo": "account\/create-payment-method.md", @@ -2848,7 +2825,6 @@ "x-appwrite": { "method": "getPaymentMethod", "group": null, - "weight": 1088, "cookies": false, "type": "", "demo": "account\/get-payment-method.md", @@ -2907,7 +2883,6 @@ "x-appwrite": { "method": "updatePaymentMethod", "group": null, - "weight": 1090, "cookies": false, "type": "", "demo": "account\/update-payment-method.md", @@ -2991,7 +2966,6 @@ "x-appwrite": { "method": "deletePaymentMethod", "group": null, - "weight": 1093, "cookies": false, "type": "", "demo": "account\/delete-payment-method.md", @@ -3052,7 +3026,6 @@ "x-appwrite": { "method": "updatePaymentMethodProvider", "group": null, - "weight": 1091, "cookies": false, "type": "", "demo": "account\/update-payment-method-provider.md", @@ -3144,7 +3117,6 @@ "x-appwrite": { "method": "updatePaymentMethodMandateOptions", "group": null, - "weight": 1092, "cookies": false, "type": "", "demo": "account\/update-payment-method-mandate-options.md", @@ -3205,7 +3177,6 @@ "x-appwrite": { "method": "updatePhone", "group": "account", - "weight": 35, "cookies": false, "type": "", "demo": "account\/update-phone.md", @@ -3285,7 +3256,6 @@ "x-appwrite": { "method": "getPrefs", "group": "account", - "weight": 30, "cookies": false, "type": "", "demo": "account\/get-prefs.md", @@ -3336,7 +3306,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "account", - "weight": 36, "cookies": false, "type": "", "demo": "account\/update-prefs.md", @@ -3408,7 +3377,6 @@ "x-appwrite": { "method": "createRecovery", "group": "recovery", - "weight": 38, "cookies": false, "type": "", "demo": "account\/create-recovery.md", @@ -3489,7 +3457,6 @@ "x-appwrite": { "method": "updateRecovery", "group": "recovery", - "weight": 39, "cookies": false, "type": "", "demo": "account\/update-recovery.md", @@ -3573,7 +3540,6 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 11, "cookies": false, "type": "", "demo": "account\/list-sessions.md", @@ -3617,7 +3583,6 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 12, "cookies": false, "type": "", "demo": "account\/delete-sessions.md", @@ -3670,7 +3635,6 @@ "x-appwrite": { "method": "createAnonymousSession", "group": "sessions", - "weight": 17, "cookies": false, "type": "", "demo": "account\/create-anonymous-session.md", @@ -3723,7 +3687,6 @@ "x-appwrite": { "method": "createEmailPasswordSession", "group": "sessions", - "weight": 16, "cookies": false, "type": "", "demo": "account\/create-email-password-session.md", @@ -3803,7 +3766,6 @@ "x-appwrite": { "method": "updateMagicURLSession", "group": "sessions", - "weight": 26, "cookies": false, "type": "", "demo": "account\/update-magic-url-session.md", @@ -3878,7 +3840,6 @@ "x-appwrite": { "method": "createOAuth2Session", "group": "sessions", - "weight": 19, "cookies": false, "type": "webAuth", "demo": "account\/create-o-auth-2-session.md", @@ -3958,8 +3919,7 @@ "zoho", "zoom" ], - "x-enum-name": "OAuthProvider", - "x-enum-keys": [] + "x-enum-name": "OAuthProvider" }, "in": "path" }, @@ -4027,7 +3987,6 @@ "x-appwrite": { "method": "updatePhoneSession", "group": "sessions", - "weight": 27, "cookies": false, "type": "", "demo": "account\/update-phone-session.md", @@ -4109,7 +4068,6 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 18, "cookies": false, "type": "", "demo": "account\/create-session.md", @@ -4187,7 +4145,6 @@ "x-appwrite": { "method": "getSession", "group": "sessions", - "weight": 13, "cookies": false, "type": "", "demo": "account\/get-session.md", @@ -4250,7 +4207,6 @@ "x-appwrite": { "method": "updateSession", "group": "sessions", - "weight": 15, "cookies": false, "type": "", "demo": "account\/update-session.md", @@ -4306,7 +4262,6 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 14, "cookies": false, "type": "", "demo": "account\/delete-session.md", @@ -4371,7 +4326,6 @@ "x-appwrite": { "method": "updateStatus", "group": "account", - "weight": 37, "cookies": false, "type": "", "demo": "account\/update-status.md", @@ -4424,7 +4378,6 @@ "x-appwrite": { "method": "createPushTarget", "group": "pushTargets", - "weight": 44, "cookies": false, "type": "", "demo": "account\/create-push-target.md", @@ -4468,6 +4421,7 @@ "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": "" } }, @@ -4505,7 +4459,6 @@ "x-appwrite": { "method": "updatePushTarget", "group": "pushTargets", - "weight": 45, "cookies": false, "type": "", "demo": "account\/update-push-target.md", @@ -4578,7 +4531,6 @@ "x-appwrite": { "method": "deletePushTarget", "group": "pushTargets", - "weight": 46, "cookies": false, "type": "", "demo": "account\/delete-push-target.md", @@ -4641,7 +4593,6 @@ "x-appwrite": { "method": "createEmailToken", "group": "tokens", - "weight": 25, "cookies": false, "type": "", "demo": "account\/create-email-token.md", @@ -4691,6 +4642,7 @@ "phrase": { "type": "boolean", "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "default": false, "x-example": false } }, @@ -4728,7 +4680,6 @@ "x-appwrite": { "method": "createMagicURLToken", "group": "tokens", - "weight": 24, "cookies": false, "type": "", "demo": "account\/create-magic-url-token.md", @@ -4778,12 +4729,14 @@ "url": { "type": "string", "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "default": "", "x-example": "https:\/\/example.com", "format": "url" }, "phrase": { "type": "boolean", "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "default": false, "x-example": false } }, @@ -4814,7 +4767,6 @@ "x-appwrite": { "method": "createOAuth2Token", "group": "tokens", - "weight": 23, "cookies": false, "type": "webAuth", "demo": "account\/create-o-auth-2-token.md", @@ -4894,8 +4846,7 @@ "zoho", "zoom" ], - "x-enum-name": "OAuthProvider", - "x-enum-keys": [] + "x-enum-name": "OAuthProvider" }, "in": "path" }, @@ -4963,7 +4914,6 @@ "x-appwrite": { "method": "createPhoneToken", "group": "tokens", - "weight": 28, "cookies": false, "type": "", "demo": "account\/create-phone-token.md", @@ -5045,7 +4995,6 @@ "x-appwrite": { "method": "createEmailVerification", "group": "verification", - "weight": 40, "cookies": false, "type": "", "demo": "account\/create-email-verification.md", @@ -5168,7 +5117,6 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "verification", - "weight": 41, "cookies": false, "type": "", "demo": "account\/update-email-verification.md", @@ -5302,7 +5250,6 @@ "x-appwrite": { "method": "createPhoneVerification", "group": "verification", - "weight": 42, "cookies": false, "type": "", "demo": "account\/create-phone-verification.md", @@ -5356,7 +5303,6 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "verification", - "weight": 43, "cookies": false, "type": "", "demo": "account\/update-phone-verification.md", @@ -5434,7 +5380,6 @@ "x-appwrite": { "method": "listEvents", "group": null, - "weight": 1206, "cookies": false, "type": "", "demo": "activities\/list-events.md", @@ -5497,7 +5442,6 @@ "x-appwrite": { "method": "getEvent", "group": "events", - "weight": 1207, "cookies": false, "type": "", "demo": "activities\/get-event.md", @@ -5553,7 +5497,6 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 176, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -5682,7 +5625,6 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 175, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -5817,7 +5759,6 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 179, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -5878,7 +5819,6 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 177, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -6369,7 +6309,6 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 178, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -6454,7 +6393,6 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 181, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -6549,7 +6487,6 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 180, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -6644,7 +6581,6 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 182, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -6743,8 +6679,7 @@ "light", "dark" ], - "x-enum-name": null, - "x-enum-keys": [], + "x-enum-name": "BrowserTheme", "default": "light" }, "in": "query" @@ -6788,7 +6723,7 @@ "required": false, "schema": { "type": "string", - "x-example": "america\/new_york", + "x-example": "America\/New_York", "enum": [ "africa\/abidjan", "africa\/accra", @@ -7210,9 +7145,7 @@ "pacific\/wallis", "utc" ], - "x-enum-name": null, - "x-enum-keys": [], - "default": "" + "x-enum-name": "Timezone" }, "in": "query" }, @@ -7293,8 +7226,7 @@ "web-share", "xr-spatial-tracking" ], - "x-enum-name": "BrowserPermission", - "x-enum-keys": [] + "x-enum-name": "BrowserPermission" }, "x-example": "[\"geolocation\",\"notifications\"]", "default": [] @@ -7365,9 +7297,7 @@ "avif", "gif" ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "" + "x-enum-name": "ImageFormat" }, "in": "query" } @@ -7398,7 +7328,6 @@ "x-appwrite": { "method": "listArchives", "group": null, - "weight": 1075, "cookies": false, "type": "", "demo": "backups\/list-archives.md", @@ -7462,7 +7391,6 @@ "x-appwrite": { "method": "createArchive", "group": null, - "weight": 1076, "cookies": false, "type": "", "demo": "backups\/create-archive.md", @@ -7507,8 +7435,7 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "resourceId": { @@ -7551,7 +7478,6 @@ "x-appwrite": { "method": "getArchive", "group": null, - "weight": 1074, "cookies": false, "type": "", "demo": "backups\/get-archive.md", @@ -7605,7 +7531,6 @@ "x-appwrite": { "method": "deleteArchive", "group": null, - "weight": 1077, "cookies": false, "type": "", "demo": "backups\/delete-archive.md", @@ -7668,7 +7593,6 @@ "x-appwrite": { "method": "listPolicies", "group": null, - "weight": 1070, "cookies": false, "type": "", "demo": "backups\/list-policies.md", @@ -7735,7 +7659,6 @@ "x-appwrite": { "method": "createPolicy", "group": null, - "weight": 1071, "cookies": false, "type": "", "demo": "backups\/create-policy.md", @@ -7777,6 +7700,7 @@ "name": { "type": "string", "description": "Policy name. Max length: 128 chars.", + "default": "", "x-example": "" }, "services": { @@ -7793,8 +7717,7 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "resourceId": { @@ -7806,6 +7729,7 @@ "enabled": { "type": "boolean", "description": "Is policy enabled? When set to 'disabled', no backups will be taken", + "default": true, "x-example": false }, "retention": { @@ -7856,7 +7780,6 @@ "x-appwrite": { "method": "getPolicy", "group": null, - "weight": 1069, "cookies": false, "type": "", "demo": "backups\/get-policy.md", @@ -7920,7 +7843,6 @@ "x-appwrite": { "method": "updatePolicy", "group": null, - "weight": 1072, "cookies": false, "type": "", "demo": "backups\/update-policy.md", @@ -8012,7 +7934,6 @@ "x-appwrite": { "method": "deletePolicy", "group": null, - "weight": 1073, "cookies": false, "type": "", "demo": "backups\/delete-policy.md", @@ -8078,7 +7999,6 @@ "x-appwrite": { "method": "createRestoration", "group": null, - "weight": 1080, "cookies": false, "type": "", "demo": "backups\/create-restoration.md", @@ -8128,18 +8048,19 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "newResourceId": { "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": "", "x-example": "" }, "newResourceName": { "type": "string", "description": "Database name. Max length: 128 chars.", + "default": "", "x-example": "" } }, @@ -8177,7 +8098,6 @@ "x-appwrite": { "method": "listRestorations", "group": null, - "weight": 1079, "cookies": false, "type": "", "demo": "backups\/list-restorations.md", @@ -8243,7 +8163,6 @@ "x-appwrite": { "method": "getRestoration", "group": null, - "weight": 1078, "cookies": false, "type": "", "demo": "backups\/get-restoration.md", @@ -8282,21 +8201,21 @@ ] } }, - "\/console\/assistant": { - "post": { - "summary": "Create assistant query", - "operationId": "assistantChat", + "\/compute\/databases": { + "get": { + "summary": "List dedicated databases.", + "operationId": "computeListDatabases", "tags": [ - "assistant" + "compute" ], - "description": "Send a prompt to the AI assistant and receive a response. This endpoint allows you to interact with Appwrite's AI assistant by sending questions or prompts and receiving helpful responses in real-time through a server-sent events stream. ", + "description": "List all dedicated databases. Results support pagination.", "responses": { "200": { - "description": "Text", + "description": "Dedicated databases list", "content": { - "text\/plain": { + "application\/json": { "schema": { - "type": "string" + "$ref": "#\/components\/schemas\/dedicatedDatabaseList" } } } @@ -8304,22 +8223,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "chat", - "group": "console", - "weight": 511, + "method": "listDatabases", + "group": "databases", "cookies": false, "type": "", - "demo": "assistant\/chat.md", - "rate-limit": 15, + "demo": "compute\/list-databases.md", + "rate-limit": 0, "rate-time": 3600, - "rate-key": "userId:{userId}", - "scope": "assistant.read", + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/assistant\/chat.md", "auth": { "Project": [] } @@ -8329,42 +8246,36 @@ "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "description": "Prompt. A string containing questions asked to the AI assistant.", - "x-example": "" - } - }, - "required": [ - "prompt" - ] - } - } + "parameters": [ + { + "name": "queries", + "description": "Array of query strings.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } - } - } - }, - "\/console\/campaigns\/{campaignId}": { - "get": { - "summary": "Get campaign details", - "operationId": "consoleGetCampaign", + ] + }, + "post": { + "summary": "Create a dedicated database.", + "operationId": "computeCreateDatabase", "tags": [ - "console" + "compute" ], - "description": "Receive the details of a campaign using its ID.", + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", "responses": { "201": { - "description": "Campaign", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/campaign" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -8372,22 +8283,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCampaign", - "group": null, - "weight": 933, + "method": "createDatabase", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-campaign.md", + "demo": "compute\/create-database.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-campaign.md", "auth": { "Project": [] } @@ -8397,35 +8306,231 @@ "Project": [] } ], - "parameters": [ - { - "name": "campaignId", - "description": "ID of the campaign", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "type": "string", + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "Database display name. Max length: 128 chars.", + "x-example": "" + }, + "engine": { + "type": "string", + "description": "Database engine: postgres, mysql, mariadb, or mongodb.", + "default": "postgres", + "x-example": "postgres" + }, + "version": { + "type": "string", + "description": "Database engine version. Defaults to latest for selected engine.", + "x-example": "17", + "x-nullable": true + }, + "region": { + "type": "string", + "description": "Region identifier. Use one of the enabled region codes (e.g., fra, nyc, syd).", + "default": "fra", + "x-example": "fra" + }, + "type": { + "type": "string", + "description": "Database type: shared (serverless) or dedicated (always-on).", + "default": "shared", + "x-example": "shared" + }, + "specification": { + "type": "string", + "description": "Specification identifier.", + "default": "starter", + "x-example": "" + }, + "backend": { + "type": "string", + "description": "Database backend provider: prisma, or edge.", + "default": "edge", + "x-example": "prisma" + }, + "cpu": { + "type": "integer", + "description": "CPU in millicores (125-16000).", + "default": 1000, + "x-example": 125, + "format": "int32" + }, + "memory": { + "type": "integer", + "description": "Memory in MB to allocate (128-65536).", + "default": 1024, + "x-example": 128, + "format": "int32" + }, + "storage": { + "type": "integer", + "description": "Storage in GB to allocate (1-16384).", + "default": 10, + "x-example": 1, + "format": "int32" + }, + "storageClass": { + "type": "string", + "description": "Storage class: ssd, nvme, or hdd.", + "default": "ssd", + "x-example": "ssd" + }, + "storageMaxGb": { + "type": "integer", + "description": "Maximum storage limit in GB. 0 uses system default.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "highAvailability": { + "type": "boolean", + "description": "Enable high availability.", + "default": false, + "x-example": false + }, + "highAvailabilityReplicaCount": { + "type": "integer", + "description": "Number of high availability replicas (0-5).", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "highAvailabilitySyncMode": { + "type": "string", + "description": "Replication sync mode. Allowed values: async, sync, quorum.", + "x-example": "async", + "x-nullable": true + }, + "networkMaxConnections": { + "type": "integer", + "description": "Maximum concurrent connections.", + "default": 100, + "x-example": 10, + "format": "int32" + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "default": 900, + "x-example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes of inactivity before container scales to zero.", + "default": 15, + "x-example": 5, + "format": "int32" + }, + "backupEnabled": { + "type": "boolean", + "description": "Enable automatic backups.", + "default": true, + "x-example": false + }, + "backupPitr": { + "type": "boolean", + "description": "Enable point-in-time recovery.", + "default": true, + "x-example": false + }, + "backupCron": { + "type": "string", + "description": "Backup schedule in cron format.", + "default": "0 3 * * *", + "x-example": null + }, + "backupRetentionDays": { + "type": "integer", + "description": "Number of days to retain backups.", + "default": 14, + "x-example": 1, + "format": "int32" + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "default": 7, + "x-example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "default": false, + "x-example": false + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "default": 85, + "x-example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "metricsEnabled": { + "type": "boolean", + "description": "Enable metrics collection.", + "default": true, + "x-example": false + }, + "poolerEnabled": { + "type": "boolean", + "description": "Enable connection pooler on provision.", + "default": true, + "x-example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } + } } - ] + } } }, - "\/console\/coupons\/{couponId}": { + "\/compute\/databases\/{databaseId}": { "get": { - "summary": "Get coupon details", - "operationId": "consoleGetCoupon", + "summary": "Get dedicated database.", + "operationId": "computeGetDatabase", "tags": [ - "console" + "compute" ], - "description": "Get the details of a coupon using it's coupon ID.", + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", "responses": { - "201": { - "description": "Coupon", + "200": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/coupon" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -8433,22 +8538,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCoupon", - "group": null, - "weight": 930, + "method": "getDatabase", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-coupon.md", - "rate-limit": 50, + "demo": "compute\/get-database.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-coupon.md", "auth": { "Project": [] } @@ -8460,33 +8563,31 @@ ], "parameters": [ { - "name": "couponId", - "description": "ID of the coupon", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ] - } - }, - "\/console\/oauth2-providers": { - "get": { - "summary": "List OAuth2 providers", - "operationId": "consoleListOAuth2Providers", + }, + "patch": { + "summary": "Update dedicated database.", + "operationId": "computeUpdateDatabase", "tags": [ - "console" + "compute" ], - "description": "List all OAuth2 providers supported by the Appwrite server, along with the parameters required to configure each provider. The response excludes mock providers but includes sandbox providers.", + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Resource changes (cpu, memory) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", "responses": { "200": { - "description": "Console OAuth2 Providers List", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/consoleOAuth2ProviderList" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -8494,16 +8595,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listOAuth2Providers", - "group": "console", - "weight": 508, + "method": "updateDatabase", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/list-o-auth-2-providers.md", + "demo": "compute\/update-database.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console" ], @@ -8517,47 +8617,261 @@ { "Project": [] } - ] - } - }, - "\/console\/plans": { - "get": { - "summary": "Get plans", - "operationId": "consoleGetPlans", - "tags": [ - "console" ], - "description": "Return a list of all available plans.", - "responses": { - "200": { - "description": "Billing plan list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/billingPlanList" + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database display name.", + "x-example": "", + "x-nullable": true + }, + "status": { + "type": "string", + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume, or \"inactive\" to spin down a shared database.", + "x-example": "ready", + "x-nullable": true + }, + "specification": { + "type": "string", + "description": "Specification. Changes cpu, memory, and type based on specification config.", + "x-example": "", + "x-nullable": true + }, + "cpu": { + "type": "number", + "description": "CPU cores to allocate (125-16000).", + "x-example": 125, + "format": "float", + "x-nullable": true + }, + "memory": { + "type": "integer", + "description": "Memory in MB to allocate (128-65536).", + "x-example": 128, + "format": "int32", + "x-nullable": true + }, + "storage": { + "type": "integer", + "description": "Storage in GB to allocate (1-16384).", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "storageClass": { + "type": "string", + "description": "Storage class. Allowed values: ssd, nvme, hdd.", + "x-example": "ssd", + "x-nullable": true + }, + "highAvailability": { + "type": "boolean", + "description": "Enable high availability.", + "x-example": false, + "x-nullable": true + }, + "highAvailabilityReplicaCount": { + "type": "integer", + "description": "Number of high availability replicas (0-5).", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "networkMaxConnections": { + "type": "integer", + "description": "Maximum concurrent connections.", + "x-example": 10, + "format": "int32", + "x-nullable": true + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds (60-86400).", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes before container scales to zero.", + "x-example": 5, + "format": "int32", + "x-nullable": true + }, + "backupEnabled": { + "type": "boolean", + "description": "Enable automatic backups.", + "x-example": false, + "x-nullable": true + }, + "backupPitr": { + "type": "boolean", + "description": "Enable point-in-time recovery.", + "x-example": false, + "x-nullable": true + }, + "backupCron": { + "type": "string", + "description": "Backup schedule in cron format.", + "x-example": null, + "x-nullable": true + }, + "backupRetentionDays": { + "type": "integer", + "description": "Days to retain backups.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Days to retain PITR data.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "x-example": false, + "x-nullable": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "x-example": 50, + "format": "int32", + "x-nullable": true + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "poolerEnabled": { + "type": "boolean", + "description": "Attach or detach the connection pooler sidecar. Set to true to add the sidecar (no-op if already attached) or false to remove it.", + "x-example": false, + "x-nullable": true + }, + "metricsEnabled": { + "type": "boolean", + "description": "Enable or disable the metrics-agent sidecar.", + "x-example": false, + "x-nullable": true + }, + "metricsTraceSampleRate": { + "type": "number", + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "type": "integer", + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Enable the SQL API sidecar for this database.", + "x-example": false, + "x-nullable": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "x-example": 1024, + "format": "int32", + "x-nullable": true + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "x-example": 1, + "format": "int32", + "x-nullable": true + } } } } } + } + }, + "delete": { + "summary": "Delete dedicated database.", + "operationId": "computeDeleteDatabase", + "tags": [ + "compute" + ], + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up.", + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "getPlans", - "group": null, - "weight": 928, + "method": "deleteDatabase", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-plans.md", + "demo": "compute\/delete-database.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-plans.md", "auth": { "Project": [] } @@ -8569,40 +8883,33 @@ ], "parameters": [ { - "name": "platform", - "description": "Platform type", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { "type": "string", - "x-example": "appwrite", - "enum": [ - "appwrite", - "imagine" - ], - "x-enum-name": null, - "x-enum-keys": [], - "default": "appwrite" + "x-example": "" }, - "in": "query" + "in": "path" } ] } }, - "\/console\/plans\/{planId}": { + "\/compute\/databases\/{databaseId}\/backups": { "get": { - "summary": "Get plan", - "operationId": "consoleGetPlan", + "summary": "List database backups.", + "operationId": "computeListDatabaseBackups", "tags": [ - "console" + "compute" ], - "description": "Get the details of a plan using its plan ID.", + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "billingPlan", + "description": "BackupList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/billingPlan" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupList" } } } @@ -8610,22 +8917,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPlan", - "group": null, - "weight": 929, + "method": "listDatabaseBackups", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-plan.md", + "demo": "compute\/list-database-backups.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "databases.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-plan.md", "auth": { "Project": [] } @@ -8637,33 +8942,44 @@ ], "parameters": [ { - "name": "planId", - "description": "Plan 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: status, type, databaseId", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } ] - } - }, - "\/console\/programs\/{programId}": { - "get": { - "summary": "Get program details", - "operationId": "consoleGetProgram", + }, + "post": { + "summary": "Create a database backup.", + "operationId": "computeCreateDatabaseBackup", "tags": [ - "console" + "compute" ], - "description": "Receive the details of a program using its ID.", + "description": "Create a manual backup of a dedicated database. The backup will be created asynchronously and its status can be checked via the get backup endpoint.", "responses": { - "201": { - "description": "Program", + "202": { + "description": "Backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/program" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" } } } @@ -8671,22 +8987,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "getProgram", - "group": null, - "weight": 931, + "method": "createDatabaseBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-program.md", + "demo": "compute\/create-database-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-program.md", "auth": { "Project": [] } @@ -8698,33 +9012,50 @@ ], "parameters": [ { - "name": "programId", - "description": "ID of the program", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] - } - }, - "\/console\/programs\/{programId}\/memberships": { - "post": { - "summary": "Create program membership", - "operationId": "consoleCreateProgramMembership", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" + } + } + } + } + } + } + } + }, + "\/compute\/databases\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update database backup storage.", + "operationId": "computeUpdateDatabaseBackupStorage", "tags": [ - "console" + "compute" ], - "description": "Create a new membership for an account to a program.", + "description": "Configure off-cluster backup storage for a dedicated database. Supports S3, GCS, and Azure Blob Storage destinations. Backups will be stored to the configured destination in addition to on-cluster storage.", "responses": { "200": { - "description": "Organization", + "description": "BackupStorageConfig", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackupStorage" } } } @@ -8732,22 +9063,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "createProgramMembership", - "group": null, - "weight": 932, + "method": "updateDatabaseBackupStorage", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/create-program-membership.md", - "rate-limit": 10, + "demo": "compute\/update-database-backup-storage.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/create-program-membership.md", "auth": { "Project": [] } @@ -8759,33 +9088,88 @@ ], "parameters": [ { - "name": "programId", - "description": "ID of the program", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "x-example": "s3" + }, + "bucket": { + "type": "string", + "description": "Storage bucket or container name.", + "x-example": "" + }, + "region": { + "type": "string", + "description": "Storage region.", + "default": "", + "x-example": "" + }, + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "default": "backups\/", + "x-example": "" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "default": "", + "x-example": "" + }, + "accessKey": { + "type": "string", + "description": "Access key or client ID for authentication.", + "x-example": "" + }, + "secretKey": { + "type": "string", + "description": "Secret key or service account JSON for authentication.", + "x-example": "" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } + } + } + } } }, - "\/console\/regions": { + "\/compute\/databases\/{databaseId}\/backups\/{backupId}": { "get": { - "summary": "List Regions", - "operationId": "consoleListRegions", + "summary": "Get a database backup.", + "operationId": "computeGetDatabaseBackup", "tags": [ - "console" + "compute" ], - "description": "Get all available regions for the console.", + "description": "Get details of a specific database backup including its status, size, and timestamps.", "responses": { "200": { - "description": "Regions list", + "description": "Backup", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/consoleRegionList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" } } } @@ -8793,22 +9177,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRegions", - "group": null, - "weight": 927, + "method": "getDatabaseBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/list-regions.md", + "demo": "compute\/get-database-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "databases.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/list-regions.md", "auth": { "Project": [] } @@ -8817,17 +9199,37 @@ { "Project": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } ] - } - }, - "\/console\/resources": { - "get": { - "summary": "Check resource ID availability", - "operationId": "consoleGetResource", + }, + "delete": { + "summary": "Delete a database backup.", + "operationId": "computeDeleteDatabaseBackup", "tags": [ - "console" + "compute" ], - "description": "Check if a resource ID is available.", + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", "responses": { "204": { "description": "No content" @@ -8835,16 +9237,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getResource", - "group": null, - "weight": 512, + "method": "deleteDatabaseBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-resource.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.read", + "demo": "compute\/delete-database-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", "platforms": [ "console" ], @@ -8861,48 +9262,43 @@ ], "parameters": [ { - "name": "value", - "description": "Resource value.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, - "in": "query" + "in": "path" }, { - "name": "type", - "description": "Resource type.", + "name": "backupId", + "description": "Backup ID.", "required": true, "schema": { "type": "string", - "x-example": "rules", - "enum": [ - "rules" - ], - "x-enum-name": "ConsoleResourceType", - "x-enum-keys": [] + "x-example": "" }, - "in": "query" + "in": "path" } ] } }, - "\/console\/scopes\/organization": { + "\/compute\/databases\/{databaseId}\/branches": { "get": { - "summary": "List organization scopes", - "operationId": "consoleListOrganizationScopes", + "summary": "List database branches.", + "operationId": "computeListDatabaseBranches", "tags": [ - "console" + "compute" ], - "description": "List all scopes available for organization API keys, along with a description for each scope.", + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", "responses": { "200": { - "description": "Console Key Scopes List", + "description": "BranchList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/consoleKeyScopeList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranchList" } } } @@ -8910,16 +9306,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listOrganizationScopes", - "group": "console", - "weight": 510, + "method": "listDatabaseBranches", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/list-organization-scopes.md", + "demo": "compute\/list-database-branches.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.read", "platforms": [ "console" ], @@ -8933,24 +9328,34 @@ { "Project": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } ] - } - }, - "\/console\/scopes\/project": { - "get": { - "summary": "List project scopes", - "operationId": "consoleListProjectScopes", + }, + "post": { + "summary": "Create a database branch.", + "operationId": "computeCreateDatabaseBranch", "tags": [ - "console" + "compute" ], - "description": "List all scopes available for project API keys, along with a description for each scope.", + "description": "Create an ephemeral database branch from the primary via PVC snapshot. The branch is a full copy of the database at the current point in time, useful for testing schema migrations or running experiments without affecting production data. Branches expire after the configured TTL (default 24 hours). The branch is created asynchronously.", "responses": { - "200": { - "description": "Console Key Scopes List", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/consoleKeyScopeList" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -8958,16 +9363,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listProjectScopes", - "group": "console", - "weight": 509, + "method": "createDatabaseBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/list-project-scopes.md", + "demo": "compute\/create-database-branch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console" ], @@ -8981,24 +9385,60 @@ { "Project": [] } - ] + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "branchId": { + "type": "string", + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "" + }, + "ttl": { + "type": "integer", + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "default": 86400, + "x-example": 300, + "format": "int32" + } + } + } + } + } + } } }, - "\/console\/sources": { - "post": { - "summary": "Create source", - "operationId": "consoleCreateSource", + "\/compute\/databases\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete a database branch.", + "operationId": "computeDeleteDatabaseBranch", "tags": [ - "console" + "compute" ], - "description": "Create a new source.", + "description": "Delete an ephemeral database branch. This removes the branch namespace, its PVC, and the associated VolumeSnapshot. The deletion runs asynchronously and is irreversible.", "responses": { - "201": { - "description": "Any", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/any" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -9006,22 +9446,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSource", - "group": null, - "weight": 934, + "method": "deleteDatabaseBranch", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/create-source.md", - "rate-limit": 50, + "demo": "compute\/delete-database-branch.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/create-source.md", "auth": { "Project": [] } @@ -9031,65 +9469,45 @@ "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ref": { - "type": "string", - "description": "Ref param", - "x-example": "", - "x-nullable": true - }, - "referrer": { - "type": "string", - "description": "Referrer", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "utmSource": { - "type": "string", - "description": "Utm source", - "x-example": "", - "x-nullable": true - }, - "utmCampaign": { - "type": "string", - "description": "Utm campaign", - "x-example": "", - "x-nullable": true - }, - "utmMedium": { - "type": "string", - "description": "Utm medium", - "x-example": "", - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } - } + ] } }, - "\/console\/suggestions\/columns": { + "\/compute\/databases\/{databaseId}\/connections": { "get": { - "summary": "Get column suggestions with size limits for a table, using database context and an optional user provided context", - "operationId": "consoleSuggestColumns", + "summary": "List database connections.", + "operationId": "computeListDatabaseConnections", "tags": [ - "console" + "compute" ], - "description": "Suggests column names and their size limits based on the provided table name. The API will also analyze other tables in the same database to provide context-aware suggestions, ensuring consistency across schema design. Users may optionally provide custom context to further refine the suggestions.", + "description": "List all database connection users\/roles for a dedicated database.", "responses": { "200": { - "description": "Columns List", + "description": "Dedicated database connections list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseConnectionList" } } } @@ -9097,13 +9515,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "suggestColumns", - "group": null, - "weight": 935, + "method": "listDatabaseConnections", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/suggest-columns.md", - "rate-limit": 10, + "demo": "compute\/list-database-connections.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", @@ -9112,7 +9529,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-columns.md", "auth": { "Project": [] } @@ -9131,70 +9547,24 @@ "type": "string", "x-example": "" }, - "in": "query" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "query" - }, - { - "name": "context", - "description": "Optional user provided context to refine suggestions.", - "required": false, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "query" - }, - { - "name": "min", - "description": "Minimum number of suggestions to generate.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 3 - }, - "in": "query" - }, - { - "name": "max", - "description": "Maximum number of suggestions to generate.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 7 - }, - "in": "query" + "in": "path" } ] - } - }, - "\/console\/suggestions\/indexes": { - "get": { - "summary": "Get index suggestions for table columns, using database context", - "operationId": "consoleSuggestIndexes", + }, + "post": { + "summary": "Create a database connection user.", + "operationId": "computeCreateDatabaseConnection", "tags": [ - "console" + "compute" ], - "description": "Suggests database indexes for table columns based on the provided table structure and existing columns. The API will also analyze the table's column types, names, and patterns to recommend optimal indexes that improve query performance for common database operations like filtering, sorting, and searching.", + "description": "Create a new database connection user\/role. Returns the connection details including the generated credentials.", "responses": { - "200": { - "description": "Column Indexes List", + "201": { + "description": "Connection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIndexList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseConnection" } } } @@ -9202,22 +9572,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "suggestIndexes", - "group": null, - "weight": 936, + "method": "createDatabaseConnection", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/suggest-indexes.md", - "rate-limit": 10, + "demo": "compute\/create-database-connection.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-indexes.md", "auth": { "Project": [] } @@ -9236,60 +9604,113 @@ "type": "string", "x-example": "" }, - "in": "query" - }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "username": { + "type": "string", + "description": "Connection username.", + "x-example": "" + }, + "role": { + "type": "string", + "description": "Connection role for the new user. Common values: readonly (read-only access), readwrite (full read and write access).", + "default": "readwrite", + "x-example": "" + } + }, + "required": [ + "username" + ] + } + } + } + } + } + }, + "\/compute\/databases\/{databaseId}\/connections\/{connectionId}": { + "delete": { + "summary": "Delete a database connection.", + "operationId": "computeDeleteDatabaseConnection", + "tags": [ + "compute" + ], + "description": "Delete a database connection user\/role. The connection will be terminated immediately.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDatabaseConnection", + "group": "databases", + "cookies": false, + "type": "", + "demo": "compute\/delete-database-connection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "tableId", - "description": "Table ID.", + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" - }, - "in": "query" - }, - { - "name": "min", - "description": "Minimum number of suggestions to generate.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 1 + "x-example": "" }, - "in": "query" + "in": "path" }, { - "name": "max", - "description": "Maximum number of suggestions to generate.", - "required": false, + "name": "connectionId", + "description": "Connection ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 4 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } ] } }, - "\/console\/suggestions\/queries": { + "\/compute\/databases\/{databaseId}\/credentials": { "get": { - "summary": "Get query suggestions for a list resource from free-text intent", - "operationId": "consoleSuggestQueries", + "summary": "Get database credentials.", + "operationId": "computeGetDatabaseCredentials", "tags": [ - "console" + "compute" ], - "description": "Suggest valid Appwrite query JSON objects for a supported list resource from free-text user intent. The endpoint picks a validator based on `resource` \u2014 for system resources it uses the static validator and its allowed attributes, and for user-owned table rows it loads the table schema and validates against those attributes at request time. The returned queries are guaranteed to parse and pass the relevant queries validator.\n", + "description": "Get connection credentials for a dedicated database. Returns the hostname, port, username, password, database name, and full connection string.", "responses": { "200": { - "description": "Any", + "description": "Credentials", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/any" + "$ref": "#\/components\/schemas\/dedicatedDatabaseCredentials" } } } @@ -9297,13 +9718,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "suggestQueries", - "group": null, - "weight": 937, + "method": "getDatabaseCredentials", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/suggest-queries.md", - "rate-limit": 10, + "demo": "compute\/get-database-credentials.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", @@ -9312,7 +9732,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-queries.md", "auth": { "Project": [] } @@ -9324,218 +9743,31 @@ ], "parameters": [ { - "name": "resource", - "description": "Resource to generate queries for.", + "name": "databaseId", + "description": "Database ID.", "required": true, - "schema": { - "type": "string", - "x-example": "activities", - "enum": [ - "activities", - "activityevents", - "archives", - "credits", - "dnsrecords", - "domains", - "invoices", - "paymentmethods", - "policies", - "projects", - "restorations", - "teamaggregations", - "teams", - "databases", - "tables", - "rows", - "schedules", - "platforms", - "keys", - "devkeys", - "webhooks", - "certificates", - "realtime", - "rules", - "installations", - "repositories", - "vcscomments", - "vcscommentlocks", - "reports", - "insights", - "users", - "cache", - "tokens", - "authenticators", - "challenges", - "sessions", - "identities", - "memberships", - "buckets", - "providers", - "messages", - "topics", - "subscribers", - "targets", - "companies", - "billingaddresses", - "billingaggregations", - "billingaggregationresources", - "billingteamprojectaggregations", - "billingteamaggregations_v2", - "billingteamaggregationresources", - "billinginvoices_v2", - "billingaddons", - "alerts", - "payments", - "billingdiscounts", - "sources", - "deals", - "blocks", - "threats", - "feedbacks", - "sh_installations", - "attributes", - "indexes", - "functions", - "sites", - "deployments", - "executions", - "variables", - "migrations", - "resourcetokens", - "transactions", - "transactionlogs", - "presencelogs", - "stats" - ], - "x-enum-name": "QuerySuggestionResource", - "x-enum-keys": [ - "activities", - "activity_events", - "archives", - "credits", - "dns_records", - "domains", - "invoices", - "payment_methods", - "policies", - "projects", - "restorations", - "team_aggregations", - "teams", - "databases", - "tables", - "rows", - "schedules", - "platforms", - "keys", - "dev_keys", - "webhooks", - "certificates", - "realtime", - "rules", - "installations", - "repositories", - "vcs_comments", - "vcs_comment_locks", - "reports", - "insights", - "users", - "cache", - "tokens", - "authenticators", - "challenges", - "sessions", - "identities", - "memberships", - "buckets", - "providers", - "messages", - "topics", - "subscribers", - "targets", - "companies", - "billing_addresses", - "billing_aggregations", - "billing_aggregation_resources", - "billing_team_project_aggregations", - "billing_team_aggregations_v2", - "billing_team_aggregation_resources", - "billing_invoices_v2", - "billing_addons", - "alerts", - "payments", - "billing_discounts", - "sources", - "deals", - "blocks", - "threats", - "feedbacks", - "sh_installations", - "attributes", - "indexes", - "functions", - "sites", - "deployments", - "executions", - "variables", - "migrations", - "resource_tokens", - "transactions", - "transaction_logs", - "presence_logs", - "stats" - ] - }, - "in": "query" - }, - { - "name": "input", - "description": "Natural language query intent used to generate filters\/sorting\/pagination.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "query" - }, - { - "name": "databaseId", - "description": "Database ID. Required when resource is `tables` or `rows`.", - "required": false, "schema": { "type": "string", "x-example": "" }, - "in": "query" - }, - { - "name": "tableId", - "description": "Table ID. Required when resource is `rows`.", - "required": false, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "query" + "in": "path" } ] - } - }, - "\/console\/templates\/email\/{templateId}": { - "get": { - "summary": "Get email template", - "operationId": "consoleGetEmailTemplate", + }, + "post": { + "summary": "Update database credentials.", + "operationId": "computeUpdateDatabaseCredentials", "tags": [ - "console" + "compute" ], - "description": "Get the Appwrite built-in default email template for the specified type and locale. Always returns the unmodified default, ignoring any custom project overrides.", + "description": "Rotate the primary credentials for a dedicated database. Generates a new password and updates the database. Previous credentials will stop working immediately.", "responses": { "200": { - "description": "EmailTemplate", + "description": "Credentials", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/emailTemplate" + "$ref": "#\/components\/schemas\/dedicatedDatabaseCredentials" } } } @@ -9543,16 +9775,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getEmailTemplate", - "group": null, - "weight": 507, + "method": "updateDatabaseCredentials", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-email-template.md", + "demo": "compute\/update-database-credentials.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console" ], @@ -9569,190 +9800,33 @@ ], "parameters": [ { - "name": "templateId", - "description": "Email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [] + "x-example": "" }, "in": "path" - }, - { - "name": "locale", - "description": "Template locale. If left empty, the fallback locale (en) will be used.", - "required": false, - "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": "ProjectEmailTemplateLocale", - "x-enum-keys": [], - "default": "" - }, - "in": "query" } ] } }, - "\/console\/variables": { - "get": { - "summary": "Get variables", - "operationId": "consoleVariables", + "\/compute\/databases\/{databaseId}\/execution": { + "post": { + "summary": "Execute a SQL statement against a dedicated database.", + "operationId": "computeCreateDatabaseExecution", "tags": [ - "console" + "compute" ], - "description": "Get all Environment Variables that are relevant for the console.", + "description": "Execute SQL through the console-facing Cloud endpoint. Cloud proxies through the edge platform to the per-database SQL API sidecar. Application traffic should bypass cloud entirely and POST directly to the per-database hostname: `https:\/\/db-{project}-{db}.{region}.appwrite.network\/v1\/sql\/execute` with an `X-Appwrite-Key` header \u2014 that path scales to the whole DB fleet without a per-query cloud round-trip. The statement type must be on the database's configured allow-list. Use bound parameters for any user-supplied values \u2014 the API does not interpolate raw strings.", "responses": { "200": { - "description": "Console Variables", + "description": "Execution", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/consoleVariables" + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecution" } } } @@ -9760,16 +9834,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "variables", - "group": "console", - "weight": 506, + "method": "createDatabaseExecution", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/variables.md", + "demo": "compute\/create-database-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "databases.write", "platforms": [ "console" ], @@ -9783,211 +9856,249 @@ { "Project": [] } - ] + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sql": { + "type": "string", + "description": "SQL statement to execute. Exactly one statement per request.", + "x-example": "" + }, + "bindings": { + "type": "object", + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "x-example": "{}", + "x-nullable": true + }, + "timeoutSeconds": { + "type": "integer", + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "sql" + ] + } + } + } + } } }, - "\/databases": { - "get": { - "summary": "List databases", - "operationId": "databasesList", + "\/compute\/databases\/{databaseId}\/explanation": { + "post": { + "summary": "Explain query execution plan.", + "operationId": "computeCreateDatabaseQueryExplanation", "tags": [ - "databases" + "compute" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Run EXPLAIN on a query against a dedicated database. Available for SQL-compatible engines. Returns the query execution plan including scan types, estimated cost, and resource usage. Optionally run EXPLAIN ANALYZE to get actual execution statistics.", "responses": { "200": { - "description": "Databases List", + "description": "QueryExplanation", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/databaseList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseQueryExplanation" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "list", + "method": "createDatabaseQueryExplanation", "group": "databases", - "weight": 704, "cookies": false, "type": "", - "demo": "databases\/list.md", + "demo": "compute\/create-database-query-explanation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.list" - }, - "methods": [ - { - "name": "list", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "queries", - "search", - "total" - ], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/databaseList" - } - ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", - "demo": "databases\/list.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.list" - } - } - ], "auth": { "Project": [] } }, "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", - "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": "", - "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": "" }, - "in": "query" + "in": "path" } - ] - }, - "post": { - "summary": "Create database", - "operationId": "databasesCreate", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "Query to explain. Must be a valid query for the database engine.", + "x-example": "" + }, + "analyze": { + "type": "boolean", + "description": "Run EXPLAIN ANALYZE to get actual execution statistics. This executes the query.", + "default": false, + "x-example": false + } + }, + "required": [ + "query" + ] + } + } + } + } + } + }, + "\/compute\/databases\/{databaseId}\/extensions": { + "get": { + "summary": "List database extensions.", + "operationId": "computeListDatabaseExtensions", "tags": [ - "databases" + "compute" ], - "description": "Create a new Database.\n", + "description": "List installed and available extensions for a PostgreSQL database.", "responses": { - "201": { - "description": "Database", + "200": { + "description": "Extensions", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/dedicatedDatabaseExtensions" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "create", + "method": "listDatabaseExtensions", "group": "databases", - "weight": 700, "cookies": false, "type": "", - "demo": "databases\/create.md", + "demo": "compute\/list-database-extensions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.create" - }, - "methods": [ - { - "name": "create", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "name", - "enabled" - ], - "required": [ - "databaseId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/database" + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + }, + "post": { + "summary": "Install a database extension.", + "operationId": "computeCreateDatabaseExtension", + "tags": [ + "compute" + ], + "description": "Install a database extension. Only available for PostgreSQL databases. The install runs asynchronously; poll the extensions list endpoint for status.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabase" } - ], - "description": "Create a new Database.\n", - "demo": "databases\/create.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.create" } } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createDatabaseExtension", + "group": "databases", + "cookies": false, + "type": "", + "demo": "compute\/create-database-extension.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console" ], + "packaging": false, + "public": true, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ], "requestBody": { @@ -9996,24 +10107,13 @@ "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": "" - }, "name": { "type": "string", - "description": "Database name. Max length: 128 chars.", + "description": "Extension name (e.g., pgvector, postgis, uuid-ossp).", "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": [ - "databaseId", "name" ] } @@ -10022,21 +10122,21 @@ } } }, - "\/databases\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "databasesListTransactions", + "\/compute\/databases\/{databaseId}\/extensions\/{extensionName}": { + "delete": { + "summary": "Uninstall a database extension.", + "operationId": "computeDeleteDatabaseExtension", "tags": [ - "databases" + "compute" ], - "description": "List transactions across all databases.", + "description": "Uninstall a database extension from a PostgreSQL database. The uninstall runs asynchronously; poll the extensions list endpoint for status.", "responses": { - "200": { - "description": "Transaction List", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transactionList" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -10044,67 +10144,68 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 774, + "method": "deleteDatabaseExtension", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/list-transactions.md", + "demo": "compute\/delete-database-extension.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": "databases.write", "platforms": [ - "console", - "server", - "client", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-transactions.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "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).", - "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": "extensionName", + "description": "Extension name to uninstall.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ] - }, - "post": { - "summary": "Create transaction", - "operationId": "databasesCreateTransaction", + } + }, + "\/compute\/databases\/{databaseId}\/ha": { + "get": { + "summary": "Get HA status.", + "operationId": "computeGetDatabaseHAStatus", "tags": [ - "databases" + "compute" ], - "description": "Create a new transaction.", + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { - "201": { - "description": "Transaction", + "200": { + "description": "HAStatus", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/dedicatedDatabaseHAStatus" } } } @@ -10112,71 +10213,58 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 770, + "method": "getDatabaseHAStatus", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-transaction.md", + "demo": "compute\/get-database-ha-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "databases.read", "platforms": [ - "console", - "server", - "client", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { - "type": "integer", - "description": "Seconds before the transaction expires.", - "x-example": 60, - "format": "int32" - } - } - } - } + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } - } + ] } }, - "\/databases\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "databasesGetTransaction", + "\/compute\/databases\/{databaseId}\/ha\/failovers": { + "post": { + "summary": "Trigger manual failover.", + "operationId": "computeCreateDatabaseFailover", "tags": [ - "databases" + "compute" ], - "description": "Get a transaction by its unique ID.", + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates.", "responses": { - "200": { - "description": "Transaction", + "202": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -10184,64 +10272,75 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 771, + "method": "createDatabaseFailover", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/get-transaction.md", + "demo": "compute\/create-database-failover.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": "databases.write", "platforms": [ - "console", - "server", - "client", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "databasesUpdateTransaction", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetReplicaId": { + "type": "string", + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "", + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/compute\/databases\/{databaseId}\/insights": { + "get": { + "summary": "Get database performance insights.", + "operationId": "computeGetDatabaseInsights", "tags": [ - "databases" + "compute" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "description": "Get query-level performance insights for a dedicated database. Returns top queries by execution time, wait events, and aggregate query statistics.", "responses": { "200": { - "description": "Transaction", + "description": "PerformanceInsights", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/dedicatedDatabasePerformanceInsights" } } } @@ -10249,145 +10348,171 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 772, + "method": "getDatabaseInsights", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/update-transaction.md", + "demo": "compute\/get-database-insights.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "databases.read", "platforms": [ - "console", - "server", - "client", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" + }, + { + "name": "period", + "description": "Analysis period for performance insights. Allowed values: 1h (last hour), 24h (last 24 hours), 7d (last 7 days).", + "required": false, + "schema": { + "type": "string", + "x-example": "1h", + "default": "1h" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of queries to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 25 + }, + "in": "query" } + ] + } + }, + "\/compute\/databases\/{databaseId}\/logs": { + "get": { + "summary": "List database audit logs.", + "operationId": "computeListDatabaseLogs", + "tags": [ + "compute" ], - "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 - } + "description": "List audit logs for a dedicated database. Returns DDL operations and security-relevant events.", + "responses": { + "200": { + "description": "Dedicated database audit logs list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseAuditLogList" } } } } - } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "databasesDeleteTransaction", - "tags": [ - "databases" - ], - "description": "Delete a transaction by its unique ID.", - "responses": { - "204": { - "description": "No content" - } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 773, + "method": "listDatabaseLogs", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/delete-transaction.md", + "demo": "compute\/list-database-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "databases.read", "platforms": [ - "console", - "server", - "client", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" + }, + { + "name": "startTime", + "description": "Start time in ISO 8601 format.", + "required": false, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "query" + }, + { + "name": "endTime", + "description": "End time in ISO 8601 format.", + "required": false, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of logs to return.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 100 + }, + "in": "query" } ] } }, - "\/databases\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "databasesCreateOperations", + "\/compute\/databases\/{databaseId}\/maintenance": { + "patch": { + "summary": "Update database maintenance window.", + "operationId": "computeUpdateDatabaseMaintenanceWindow", "tags": [ - "databases" + "compute" ], - "description": "Create multiple operations in a single transaction.", + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", "responses": { - "201": { - "description": "Transaction", + "200": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } @@ -10395,45 +10520,37 @@ }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", - "weight": 775, + "method": "updateDatabaseMaintenanceWindow", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-operations.md", + "demo": "compute\/update-database-maintenance-window.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "databases.write", "platforms": [ - "console", - "server", - "client", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-operations.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -10444,90 +10561,64 @@ "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" - } + "day": { + "type": "string", + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "x-example": "sun" + }, + "hourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) for maintenance window start.", + "x-example": 0, + "format": "int32" } - } + }, + "required": [ + "day", + "hourUtc" + ] } } } } } }, - "\/databases\/usage": { + "\/compute\/databases\/{databaseId}\/metrics": { "get": { - "summary": "Get databases usage stats", - "operationId": "databasesListUsage", + "summary": "Get database metrics.", + "operationId": "computeGetDatabaseMetrics", "tags": [ - "databases" + "compute" ], - "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.", + "description": "Get detailed performance metrics for a dedicated database. Returns CPU, memory, storage, IOPS, QPS, and connection metrics.", "responses": { "200": { - "description": "UsageDatabases", + "description": "DatabaseMetrics", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageDatabases" + "$ref": "#\/components\/schemas\/dedicatedDatabaseMetrics" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listUsage", - "group": null, - "weight": 707, + "method": "getDatabaseMetrics", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/list-usage.md", + "demo": "compute\/get-database-metrics.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "databases.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-usage.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listUsage" - }, - "methods": [ - { - "name": "listUsage", - "namespace": "databases", - "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": "databases\/list-usage.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listUsage" - } - } - ], "auth": { "Project": [] } @@ -10539,110 +10630,72 @@ ], "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": "" + }, + "in": "path" + }, + { + "name": "period", + "description": "Metrics aggregation period. Allowed values: 1h (last hour), 24h (last 24 hours), 7d (last 7 days), 30d (last 30 days).", + "required": false, + "schema": { + "type": "string", + "x-example": "1h", + "default": "24h" }, "in": "query" } ] } }, - "\/databases\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "databasesGet", + "\/compute\/databases\/{databaseId}\/migrations": { + "post": { + "summary": "Migrate database between shared and dedicated.", + "operationId": "computeCreateDatabaseMigration", "tags": [ - "databases" + "compute" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Migrate a database between shared and dedicated types. Shared to dedicated creates an always-on StatefulSet with external access. Dedicated to shared converts to a serverless pod that scales to zero when idle. Data is preserved during migration.", "responses": { "200": { - "description": "Database", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "get", + "method": "createDatabaseMigration", "group": "databases", - "weight": 701, "cookies": false, "type": "", - "demo": "databases\/get.md", + "demo": "compute\/create-database-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "databases.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.get" - }, - "methods": [ - { - "name": "get", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/database" - } - ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", - "demo": "databases\/get.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.get" - } - } - ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -10656,89 +10709,71 @@ }, "in": "path" } - ] - }, - "put": { - "summary": "Update database", - "operationId": "databasesUpdate", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetType": { + "type": "string", + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "x-example": "shared" + } + }, + "required": [ + "targetType" + ] + } + } + } + } + } + }, + "\/compute\/databases\/{databaseId}\/pitr": { + "get": { + "summary": "Get PITR recovery windows.", + "operationId": "computeGetDatabasePITRWindows", "tags": [ - "databases" + "compute" ], - "description": "Update a database by its unique ID.", + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", "responses": { "200": { - "description": "Database", + "description": "PITRWindows", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/dedicatedDatabasePITRWindows" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "update", + "method": "getDatabasePITRWindows", "group": "databases", - "weight": 702, "cookies": false, "type": "", - "demo": "databases\/update.md", + "demo": "compute\/get-database-pitr-windows.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.update" - }, - "methods": [ - { - "name": "update", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "name", - "enabled" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/database" - } - ], - "description": "Update a database by its unique ID.", - "demo": "databases\/update.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.update" - } - } - ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -10752,100 +10787,109 @@ }, "in": "path" } + ] + } + }, + "\/compute\/databases\/{databaseId}\/pooler": { + "get": { + "summary": "Get connection pooler configuration.", + "operationId": "computeGetDatabasePooler", + "tags": [ + "compute" ], - "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 - } + "description": "Get the connection pooler configuration for a dedicated database. Returns pooler mode, max connections, and pool size settings.", + "responses": { + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" } } } } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "getDatabasePooler", + "group": "databases", + "cookies": false, + "type": "", + "demo": "compute\/get-database-pooler.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] }, - "delete": { - "summary": "Delete database", - "operationId": "databasesDelete", + "patch": { + "summary": "Update connection pooler configuration.", + "operationId": "computeUpdateDatabasePooler", "tags": [ - "databases" + "compute" ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "PoolerConfig", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabasePooler" + } + } + } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "delete", + "method": "updateDatabasePooler", "group": "databases", - "weight": 703, "cookies": false, "type": "", - "demo": "databases\/delete.md", + "demo": "compute\/update-database-pooler.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.delete" - }, - "methods": [ - { - "name": "delete", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", - "demo": "databases\/delete.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.delete" - } - } - ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -10859,60 +10903,113 @@ }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "mode": { + "type": "string", + "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", + "x-example": "transaction", + "x-nullable": true + }, + "maxConnections": { + "type": "integer", + "description": "Maximum pooled connections.", + "x-example": 10, + "format": "int32", + "x-nullable": true + }, + "defaultPoolSize": { + "type": "integer", + "description": "Default pool size per user.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "readWriteSplitting": { + "type": "boolean", + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "x-example": false, + "x-nullable": true + }, + "poolerCpuRequest": { + "type": "string", + "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", + "x-example": "", + "x-nullable": true + }, + "poolerCpuLimit": { + "type": "string", + "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", + "x-example": "", + "x-nullable": true + }, + "poolerMemoryRequest": { + "type": "string", + "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", + "x-example": "", + "x-nullable": true + }, + "poolerMemoryLimit": { + "type": "string", + "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", + "x-example": "", + "x-nullable": true + } + } + } + } + } + } } }, - "\/databases\/{databaseId}\/collections": { + "\/compute\/databases\/{databaseId}\/restorations": { "get": { - "summary": "List collections", - "operationId": "databasesListCollections", + "summary": "List database restorations.", + "operationId": "computeListDatabaseRestorations", "tags": [ - "databases" + "compute" ], - "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "Collections List", + "description": "Dedicated database restorations list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/collectionList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestorationList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listCollections", - "group": "collections", - "weight": 712, + "method": "listDatabaseRestorations", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/list-collections.md", + "demo": "compute\/list-database-restorations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-collections.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listTables" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -10927,92 +11024,93 @@ "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", + "name": "status", + "description": "Filter by restoration status.", "required": false, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "pending" }, "in": "query" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", + "name": "type", + "description": "Filter by restoration type.", "required": false, "schema": { "type": "string", - "x-example": "", - "default": "" + "x-example": "backup" }, "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "limit", + "description": "Maximum number of restorations to return.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 25 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 }, "in": "query" } ] }, "post": { - "summary": "Create collections", - "operationId": "databasesCreateCollection", + "summary": "Create a database restoration.", + "operationId": "computeCreateDatabaseRestoration", "tags": [ - "databases" + "compute" ], - "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "description": "Restore a database from a backup or to a specific point in time (PITR). For backup restoration, provide a backupId. For PITR, provide a targetTime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", "responses": { - "201": { - "description": "Collection", + "202": { + "description": "Restoration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/collection" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createCollection", - "group": "collections", - "weight": 708, + "method": "createDatabaseRestoration", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-collection.md", + "demo": "compute\/create-database-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-collection.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createTable" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11033,113 +11131,75 @@ "schema": { "type": "object", "properties": { - "collectionId": { + "type": { "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": "" + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "default": "backup", + "x-example": "backup" }, - "name": { + "backupId": { "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" - }, + "description": "Backup ID to restore from (required for backup type).", + "x-example": "", "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), 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).", + "targetTime": { + "type": "integer", + "description": "Target time for PITR as Unix timestamp (required for pitr type).", "x-example": null, - "items": { - "type": "object" - } + "format": "int32", + "x-nullable": true } - }, - "required": [ - "collectionId", - "name" - ] + } } } } } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}": { + "\/compute\/databases\/{databaseId}\/restorations\/{restorationId}": { "get": { - "summary": "Get collection", - "operationId": "databasesGetCollection", + "summary": "Get a database restoration.", + "operationId": "computeGetDatabaseRestoration", "tags": [ - "databases" + "compute" ], - "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "description": "Get details of a specific database restoration including its status, type, and timestamps.", "responses": { "200": { - "description": "Collection", + "description": "Restoration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/collection" + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getCollection", - "group": "collections", - "weight": 709, + "method": "getDatabaseRestoration", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/get-collection.md", + "demo": "compute\/get-database-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getTable" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11154,67 +11214,61 @@ "in": "path" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "restorationId", + "description": "Restoration ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ] - }, - "put": { - "summary": "Update collection", - "operationId": "databasesUpdateCollection", + } + }, + "\/compute\/databases\/{databaseId}\/schema": { + "get": { + "summary": "Get database schema.", + "operationId": "computeGetDatabaseSchema", "tags": [ - "databases" + "compute" ], - "description": "Update a collection by its unique ID.", + "description": "Get the current schema for a dedicated database. Returns collections, fields, data types, constraints, and indexes.", "responses": { "200": { - "description": "Collection", + "description": "Schema", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/collection" + "$ref": "#\/components\/schemas\/dedicatedDatabaseSchema" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateCollection", - "group": "collections", - "weight": 710, + "method": "getDatabaseSchema", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/update-collection.md", + "demo": "compute\/get-database-schema.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-collection.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTable" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11227,102 +11281,53 @@ "x-example": "" }, "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" } + ] + } + }, + "\/compute\/databases\/{databaseId}\/schema\/preview": { + "post": { + "summary": "Preview a schema change.", + "operationId": "computeCreateDatabaseSchemaPreview", + "tags": [ + "compute" ], - "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" - }, - "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 - }, - "purge": { - "type": "boolean", - "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", - "x-example": false - } + "description": "Preview a schema change against a dedicated database. Returns the expected impact including affected collections, records, and a dry-run diff of the schema before and after the change.", + "responses": { + "200": { + "description": "SchemaPreview", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseSchemaPreview" } } } } - } - }, - "delete": { - "summary": "Delete collection", - "operationId": "databasesDeleteCollection", - "tags": [ - "databases" - ], - "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteCollection", - "group": "collections", - "weight": 711, + "method": "createDatabaseSchemaPreview", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/delete-collection.md", + "demo": "compute\/create-database-schema-preview.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-collection.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteTable" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11335,71 +11340,72 @@ "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": { + "sql": { + "type": "string", + "description": "Schema statement to preview.", + "x-example": "" + } + }, + "required": [ + "sql" + ] + } + } + } + } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": { + "\/compute\/databases\/{databaseId}\/slow-queries": { "get": { - "summary": "List attributes", - "operationId": "databasesListAttributes", + "summary": "List slow queries.", + "operationId": "computeListDatabaseQueries", "tags": [ - "databases" + "compute" ], - "description": "List attributes in the collection.", + "description": "List slow queries for a dedicated database. Returns queries that exceeded the specified threshold.", "responses": { "200": { - "description": "Attributes List", + "description": "Dedicated database slow queries list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeList" + "$ref": "#\/components\/schemas\/dedicatedDatabaseSlowQueryList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listAttributes", - "group": "attributes", - "weight": 729, + "method": "listDatabaseQueries", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/list-attributes.md", + "demo": "compute\/list-database-queries.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-attributes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listColumns" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11414,93 +11420,75 @@ "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). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, size, required, array, status, error", + "name": "limit", + "description": "Maximum number of queries to return.", "required": false, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 100 }, "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "thresholdMs", + "description": "Minimum query duration in milliseconds.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 }, "in": "query" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint": { - "post": { - "summary": "Create bigint attribute", - "operationId": "databasesCreateBigIntAttribute", + "\/compute\/databases\/{databaseId}\/status": { + "get": { + "summary": "Get database status.", + "operationId": "computeGetDatabaseStatus", "tags": [ - "databases" + "compute" ], - "description": "Create a bigint attribute. Optionally, minimum and maximum values can be provided.\n", + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", "responses": { - "202": { - "description": "AttributeBigInt", + "200": { + "description": "Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeBigint" + "$ref": "#\/components\/schemas\/databaseStatus" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createBigIntAttribute", - "group": "attributes", - "weight": 742, + "method": "getDatabaseStatus", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-big-int-attribute.md", + "demo": "compute\/get-database-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-bigint-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createBigIntColumn" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11513,122 +11501,53 @@ "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": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute 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 attribute is required.", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } - } } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint\/{key}": { - "patch": { - "summary": "Update bigint attribute", - "operationId": "databasesUpdateBigIntAttribute", + "\/compute\/databases\/{databaseId}\/upgrades": { + "post": { + "summary": "Upgrade database version.", + "operationId": "computeCreateDatabaseUpgrade", "tags": [ - "databases" + "compute" ], - "description": "Update a bigint attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", "responses": { "200": { - "description": "AttributeBigInt", + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeBigint" + "$ref": "#\/components\/schemas\/dedicatedDatabase" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateBigIntAttribute", - "group": "attributes", - "weight": 743, + "method": "createDatabaseUpgrade", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/update-big-int-attribute.md", + "demo": "compute\/create-database-upgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-bigint-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateBigIntColumn" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11641,25 +11560,6 @@ "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" } ], "requestBody": { @@ -11668,42 +11568,14 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is attribute 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 attribute is required.", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "newKey": { + "targetVersion": { "type": "string", - "description": "New Attribute Key.", - "x-example": null, - "x-nullable": true + "description": "Target engine version to upgrade to.", + "x-example": "" } }, "required": [ - "required", - "default" + "targetVersion" ] } } @@ -11711,57 +11583,49 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": { - "post": { - "summary": "Create boolean attribute", - "operationId": "databasesCreateBooleanAttribute", + "\/compute\/databases\/{databaseId}\/usage": { + "get": { + "summary": "Get database usage metrics.", + "operationId": "computeGetDatabaseUsage", "tags": [ - "databases" + "compute" ], - "description": "Create a boolean attribute.\n", + "description": "Get usage metrics for a dedicated database including CPU, memory, storage, connections, and query statistics.", "responses": { - "202": { - "description": "AttributeBoolean", + "200": { + "description": "DedicatedDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeBoolean" + "$ref": "#\/components\/schemas\/dedicatedDatabaseUsage" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createBooleanAttribute", - "group": "attributes", - "weight": 730, + "method": "getDatabaseUsage", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-boolean-attribute.md", + "demo": "compute\/get-database-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-boolean-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createBooleanColumn" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11776,14 +11640,63 @@ "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, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "" + "x-example": "24h", + "default": "30d" }, - "in": "path" + "in": "query" + } + ] + } + }, + "\/console\/assistant": { + "post": { + "summary": "Create assistant query", + "operationId": "assistantChat", + "tags": [ + "assistant" + ], + "description": "Send a prompt to the AI assistant and receive a response. This endpoint allows you to interact with Appwrite's AI assistant by sending questions or prompts and receiving helpful responses in real-time through a server-sent events stream. ", + "responses": { + "200": { + "description": "Text", + "content": { + "text\/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "chat", + "group": "console", + "cookies": false, + "type": "", + "demo": "assistant\/chat.md", + "rate-limit": 15, + "rate-time": 3600, + "rate-key": "userId:{userId}", + "scope": "assistant.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/assistant\/chat.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] } ], "requestBody": { @@ -11792,31 +11705,14 @@ "schema": { "type": "object", "properties": { - "key": { + "prompt": { "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": false - }, - "default": { - "type": "boolean", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": false, - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false + "description": "Prompt. A string containing questions asked to the AI assistant.", + "x-example": "" } }, "required": [ - "key", - "required" + "prompt" ] } } @@ -11824,912 +11720,671 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": { - "patch": { - "summary": "Update boolean attribute", - "operationId": "databasesUpdateBooleanAttribute", + "\/console\/campaigns\/{campaignId}": { + "get": { + "summary": "Get campaign details", + "operationId": "consoleGetCampaign", "tags": [ - "databases" + "console" ], - "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.", + "description": "Receive the details of a campaign using its ID.", "responses": { - "200": { - "description": "AttributeBoolean", + "201": { + "description": "Campaign", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeBoolean" + "$ref": "#\/components\/schemas\/campaign" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateBooleanAttribute", - "group": "attributes", - "weight": 731, + "method": "getCampaign", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-boolean-attribute.md", + "demo": "console\/get-campaign.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-boolean-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateBooleanColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-campaign.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "campaignId", + "description": "ID of the campaign", "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#createCollection).", - "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": { - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": false - }, - "default": { - "type": "boolean", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": false, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New attribute key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime": { - "post": { - "summary": "Create datetime attribute", - "operationId": "databasesCreateDatetimeAttribute", + "\/console\/coupons\/{couponId}": { + "get": { + "summary": "Get coupon details", + "operationId": "consoleGetCoupon", "tags": [ - "databases" + "console" ], - "description": "Create a date time attribute according to the ISO 8601 standard.", + "description": "Get the details of a coupon using it's coupon ID.", "responses": { - "202": { - "description": "AttributeDatetime", + "201": { + "description": "Coupon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeDatetime" + "$ref": "#\/components\/schemas\/coupon" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createDatetimeAttribute", - "group": "attributes", - "weight": 732, + "method": "getCoupon", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-datetime-attribute.md", - "rate-limit": 0, + "demo": "console\/get-coupon.md", + "rate-limit": 50, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-datetime-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createDatetimeColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-coupon.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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#createCollection).", + "name": "couponId", + "description": "ID of the coupon", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": { - "patch": { - "summary": "Update datetime attribute", - "operationId": "databasesUpdateDatetimeAttribute", + "\/console\/oauth2-providers": { + "get": { + "summary": "List OAuth2 providers", + "operationId": "consoleListOAuth2Providers", "tags": [ - "databases" + "console" ], - "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.", + "description": "List all OAuth2 providers supported by the Appwrite server, along with the parameters required to configure each provider. The response excludes mock providers but includes sandbox providers.", "responses": { "200": { - "description": "AttributeDatetime", + "description": "Console OAuth2 Providers List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeDatetime" + "$ref": "#\/components\/schemas\/consoleOAuth2ProviderList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateDatetimeAttribute", - "group": "attributes", - "weight": 733, + "method": "listOAuth2Providers", + "group": "console", "cookies": false, "type": "", - "demo": "databases\/update-datetime-attribute.md", + "demo": "console\/list-o-auth-2-providers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-datetime-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateDatetimeColumn" - }, "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" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New attribute key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } + "Project": [] } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": { - "post": { - "summary": "Create email attribute", - "operationId": "databasesCreateEmailAttribute", + "\/console\/plans": { + "get": { + "summary": "Get plans", + "operationId": "consoleGetPlans", "tags": [ - "databases" + "console" ], - "description": "Create an email attribute.\n", + "description": "Return a list of all available plans.", "responses": { - "202": { - "description": "AttributeEmail", + "200": { + "description": "Billing plan list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeEmail" + "$ref": "#\/components\/schemas\/billingPlanList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createEmailAttribute", - "group": "attributes", - "weight": 734, + "method": "getPlans", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-email-attribute.md", + "demo": "console\/get-plans.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-email-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createEmailColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-plans.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, + "name": "platform", + "description": "Platform type", + "required": false, "schema": { "type": "string", - "x-example": "" + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": "Platform", + "default": "appwrite" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "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": "email@example.com", - "format": "email", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } - } + "in": "query" } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": { - "patch": { - "summary": "Update email attribute", - "operationId": "databasesUpdateEmailAttribute", + "\/console\/plans\/{planId}": { + "get": { + "summary": "Get plan", + "operationId": "consoleGetPlan", "tags": [ - "databases" + "console" ], - "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Get the details of a plan using its plan ID.", "responses": { "200": { - "description": "AttributeEmail", + "description": "billingPlan", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeEmail" + "$ref": "#\/components\/schemas\/billingPlan" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateEmailAttribute", - "group": "attributes", - "weight": 735, + "method": "getPlan", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-email-attribute.md", + "demo": "console\/get-plan.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-email-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateEmailColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", + "name": "planId", + "description": "Plan id", "required": true, "schema": { "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "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": "email@example.com", - "format": "email", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum": { - "post": { - "summary": "Create enum attribute", - "operationId": "databasesCreateEnumAttribute", + "\/console\/programs\/{programId}": { + "get": { + "summary": "Get program details", + "operationId": "consoleGetProgram", "tags": [ - "databases" + "console" ], - "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n", + "description": "Receive the details of a program using its ID.", "responses": { - "202": { - "description": "AttributeEnum", + "201": { + "description": "Program", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeEnum" + "$ref": "#\/components\/schemas\/program" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createEnumAttribute", - "group": "attributes", - "weight": 736, + "method": "getProgram", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-enum-attribute.md", + "demo": "console\/get-program.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-enum-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createEnumColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-program.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", + "name": "programId", + "description": "ID of the program", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "elements": { - "type": "array", - "description": "Array of enum values.", - "x-example": null, - "items": { - "type": "string" - } - }, - "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 - } - }, - "required": [ - "key", - "elements", - "required" - ] - } - } - } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": { - "patch": { - "summary": "Update enum attribute", - "operationId": "databasesUpdateEnumAttribute", + "\/console\/programs\/{programId}\/memberships": { + "post": { + "summary": "Create program membership", + "operationId": "consoleCreateProgramMembership", "tags": [ - "databases" + "console" ], - "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Create a new membership for an account to a program.", "responses": { "200": { - "description": "AttributeEnum", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeEnum" + "$ref": "#\/components\/schemas\/organization" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateEnumAttribute", - "group": "attributes", - "weight": 737, + "method": "createProgramMembership", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-enum-attribute.md", - "rate-limit": 0, + "demo": "console\/create-program-membership.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "teams.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-enum-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateEnumColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/create-program-membership.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "programId", + "description": "ID of the program", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" - }, + } + ] + } + }, + "\/console\/regions": { + "get": { + "summary": "List Regions", + "operationId": "consoleListRegions", + "tags": [ + "console" + ], + "description": "Get all available regions for the console.", + "responses": { + "200": { + "description": "Regions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleRegionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listRegions", + "group": null, + "cookies": false, + "type": "", + "demo": "console\/list-regions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/list-regions.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "collectionId", - "description": "Collection ID.", + "Project": [] + } + ] + } + }, + "\/console\/resources": { + "get": { + "summary": "Check resource ID availability", + "operationId": "consoleGetResource", + "tags": [ + "console" + ], + "description": "Check if a resource ID is available.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getResource", + "group": null, + "cookies": false, + "type": "", + "demo": "console\/get-resource.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "value", + "description": "Resource value.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, - "in": "path" + "in": "query" }, { - "name": "key", - "description": "Attribute Key.", + "name": "type", + "description": "Resource type.", "required": true, "schema": { - "type": "string" + "type": "string", + "x-example": "rules", + "enum": [ + "rules" + ], + "x-enum-name": "ConsoleResourceType" }, - "in": "path" + "in": "query" } + ] + } + }, + "\/console\/scopes\/organization": { + "get": { + "summary": "List organization scopes", + "operationId": "consoleListOrganizationScopes", + "tags": [ + "console" ], - "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 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 - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "elements", - "required", - "default" - ] + "description": "List all scopes available for organization API keys, along with a description for each scope.", + "responses": { + "200": { + "description": "Console Key Scopes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleKeyScopeList" + } } } } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "listOrganizationScopes", + "group": "console", + "cookies": false, + "type": "", + "demo": "console\/list-organization-scopes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": { - "post": { - "summary": "Create float attribute", - "operationId": "databasesCreateFloatAttribute", + "\/console\/scopes\/project": { + "get": { + "summary": "List project scopes", + "operationId": "consoleListProjectScopes", "tags": [ - "databases" + "console" ], - "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n", + "description": "List all scopes available for project API keys, along with a description for each scope.", "responses": { - "202": { - "description": "AttributeFloat", + "200": { + "description": "Console Key Scopes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeFloat" + "$ref": "#\/components\/schemas\/consoleKeyScopeList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createFloatAttribute", - "group": "attributes", - "weight": 738, + "method": "listProjectScopes", + "group": "console", "cookies": false, "type": "", - "demo": "databases\/create-float-attribute.md", + "demo": "console\/list-project-scopes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-float-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createFloatColumn" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } + ] + } + }, + "\/console\/sources": { + "post": { + "summary": "Create source", + "operationId": "consoleCreateSource", + "tags": [ + "console" ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, + "description": "Create a new source.", + "responses": { + "201": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createSource", + "group": null, + "cookies": false, + "type": "", + "demo": "console\/create-source.md", + "rate-limit": 50, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/create-source.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" + "Project": [] } ], "requestBody": { @@ -12738,104 +12393,88 @@ "schema": { "type": "object", "properties": { - "key": { + "ref": { "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": false + "description": "Ref param", + "x-example": "", + "x-nullable": true }, - "min": { - "type": "number", - "description": "Minimum value.", - "x-example": null, - "format": "float", + "referrer": { + "type": "string", + "description": "Referrer", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, - "max": { - "type": "number", - "description": "Maximum value.", - "x-example": null, - "format": "float", + "utmSource": { + "type": "string", + "description": "Utm source", + "x-example": "", "x-nullable": true }, - "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", - "x-example": null, - "format": "float", + "utmCampaign": { + "type": "string", + "description": "Utm campaign", + "x-example": "", "x-nullable": true }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false + "utmMedium": { + "type": "string", + "description": "Utm medium", + "x-example": "", + "x-nullable": true } - }, - "required": [ - "key", - "required" - ] + } } } } } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": { - "patch": { - "summary": "Update float attribute", - "operationId": "databasesUpdateFloatAttribute", + "\/console\/suggestions\/columns": { + "get": { + "summary": "Get column suggestions with size limits for a table, using database context and an optional user provided context", + "operationId": "consoleSuggestColumns", "tags": [ - "databases" + "console" ], - "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Suggests column names and their size limits based on the provided table name. The API will also analyze other tables in the same database to provide context-aware suggestions, ensuring consistency across schema design. Users may optionally provide custom context to further refine the suggestions.", "responses": { "200": { - "description": "AttributeFloat", + "description": "Columns List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeFloat" + "$ref": "#\/components\/schemas\/columnList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateFloatAttribute", - "group": "attributes", - "weight": 739, + "method": "suggestColumns", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-float-attribute.md", - "rate-limit": 0, + "demo": "console\/suggest-columns.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-float-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateFloatColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-columns.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -12847,128 +12486,99 @@ "type": "string", "x-example": "" }, - "in": "path" + "in": "query" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, - "in": "path" + "in": "query" }, { - "name": "key", - "description": "Attribute Key.", - "required": true, + "name": "context", + "description": "Optional user provided context to refine suggestions.", + "required": false, "schema": { - "type": "string" + "type": "string", + "x-example": "" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is attribute 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 Attribute Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } + "in": "query" + }, + { + "name": "min", + "description": "Minimum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 3 + }, + "in": "query" + }, + { + "name": "max", + "description": "Maximum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 7 + }, + "in": "query" } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": { - "post": { - "summary": "Create integer attribute", - "operationId": "databasesCreateIntegerAttribute", + "\/console\/suggestions\/indexes": { + "get": { + "summary": "Get index suggestions for table columns, using database context", + "operationId": "consoleSuggestIndexes", "tags": [ - "databases" + "console" ], - "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n", + "description": "Suggests database indexes for table columns based on the provided table structure and existing columns. The API will also analyze the table's column types, names, and patterns to recommend optimal indexes that improve query performance for common database operations like filtering, sorting, and searching.", "responses": { - "202": { - "description": "AttributeInteger", + "200": { + "description": "Column Indexes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeInteger" + "$ref": "#\/components\/schemas\/columnIndexList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createIntegerAttribute", - "group": "attributes", - "weight": 740, + "method": "suggestIndexes", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-integer-attribute.md", - "rate-limit": 0, + "demo": "console\/suggest-indexes.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-integer-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createIntegerColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-indexes.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -12980,333 +12590,577 @@ "type": "string", "x-example": "" }, - "in": "path" + "in": "query" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute 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 attribute is required.", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } - } + "in": "query" + }, + { + "name": "min", + "description": "Minimum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 1 + }, + "in": "query" + }, + { + "name": "max", + "description": "Maximum number of suggestions to generate.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 4 + }, + "in": "query" } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": { - "patch": { - "summary": "Update integer attribute", - "operationId": "databasesUpdateIntegerAttribute", + "\/console\/suggestions\/queries": { + "get": { + "summary": "Get query suggestions for a list resource from free-text intent", + "operationId": "consoleSuggestQueries", "tags": [ - "databases" + "console" ], - "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Suggest valid Appwrite query JSON objects for a supported list resource from free-text user intent. The endpoint picks a validator based on `resource` \u2014 for system resources it uses the static validator and its allowed attributes, and for user-owned table rows it loads the table schema and validates against those attributes at request time. The returned queries are guaranteed to parse and pass the relevant queries validator.\n", "responses": { "200": { - "description": "AttributeInteger", + "description": "Any", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeInteger" + "$ref": "#\/components\/schemas\/any" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateIntegerAttribute", - "group": "attributes", - "weight": 741, + "method": "suggestQueries", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-integer-attribute.md", - "rate-limit": 0, + "demo": "console\/suggest-queries.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-integer-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateIntegerColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-queries.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "resource", + "description": "Resource to generate queries for.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "activities", + "enum": [ + "activities", + "activityevents", + "archives", + "credits", + "dnsrecords", + "domains", + "invoices", + "paymentmethods", + "policies", + "projects", + "restorations", + "teamaggregations", + "teams", + "databases", + "tables", + "rows", + "schedules", + "platforms", + "keys", + "devkeys", + "webhooks", + "certificates", + "realtime", + "rules", + "installations", + "repositories", + "vcscomments", + "vcscommentlocks", + "reports", + "insights", + "users", + "cache", + "tokens", + "authenticators", + "challenges", + "sessions", + "identities", + "memberships", + "buckets", + "providers", + "messages", + "topics", + "subscribers", + "targets", + "companies", + "billingaddresses", + "billingaggregations", + "billingaggregationresources", + "billingteamprojectaggregations", + "billingteamaggregations_v2", + "billingteamaggregationresources", + "billinginvoices_v2", + "billingaddons", + "alerts", + "payments", + "billingdiscounts", + "sources", + "deals", + "blocks", + "threats", + "feedbacks", + "sh_installations", + "attributes", + "indexes", + "functions", + "sites", + "deployments", + "executions", + "variables", + "migrations", + "resourcetokens", + "transactions", + "transactionlogs", + "presencelogs", + "stats", + "dedicateddatabases", + "dedicateddatabaseconfigs", + "dedicateddatabaseruntimes", + "dedicateddatabaseoperations", + "dedicateddatabasebackups", + "dedicateddatabaserestorations" + ], + "x-enum-name": "QuerySuggestionResource", + "x-enum-keys": [ + "activities", + "activity_events", + "archives", + "credits", + "dns_records", + "domains", + "invoices", + "payment_methods", + "policies", + "projects", + "restorations", + "team_aggregations", + "teams", + "databases", + "tables", + "rows", + "schedules", + "platforms", + "keys", + "dev_keys", + "webhooks", + "certificates", + "realtime", + "rules", + "installations", + "repositories", + "vcs_comments", + "vcs_comment_locks", + "reports", + "insights", + "users", + "cache", + "tokens", + "authenticators", + "challenges", + "sessions", + "identities", + "memberships", + "buckets", + "providers", + "messages", + "topics", + "subscribers", + "targets", + "companies", + "billing_addresses", + "billing_aggregations", + "billing_aggregation_resources", + "billing_team_project_aggregations", + "billing_team_aggregations_v2", + "billing_team_aggregation_resources", + "billing_invoices_v2", + "billing_addons", + "alerts", + "payments", + "billing_discounts", + "sources", + "deals", + "blocks", + "threats", + "feedbacks", + "sh_installations", + "attributes", + "indexes", + "functions", + "sites", + "deployments", + "executions", + "variables", + "migrations", + "resource_tokens", + "transactions", + "transaction_logs", + "presence_logs", + "stats", + "dedicated_databases", + "dedicated_database_configs", + "dedicated_database_runtimes", + "dedicated_database_operations", + "dedicated_database_backups", + "dedicated_database_restorations" + ] }, - "in": "path" + "in": "query" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "input", + "description": "Natural language query intent used to generate filters\/sorting\/pagination.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, - "in": "path" + "in": "query" }, { - "name": "key", - "description": "Attribute Key.", - "required": true, + "name": "databaseId", + "description": "Database ID. Required when resource is `tables` or `rows`.", + "required": false, "schema": { - "type": "string" + "type": "string", + "x-example": "" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is attribute 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 attribute is required.", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } + "in": "query" + }, + { + "name": "tableId", + "description": "Table ID. Required when resource is `rows`.", + "required": false, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "query" } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip": { - "post": { - "summary": "Create IP address attribute", - "operationId": "databasesCreateIpAttribute", + "\/console\/templates\/email\/{templateId}": { + "get": { + "summary": "Get email template", + "operationId": "consoleGetEmailTemplate", "tags": [ - "databases" + "console" ], - "description": "Create IP address attribute.\n", + "description": "Get the Appwrite built-in default email template for the specified type and locale. Always returns the unmodified default, ignoring any custom project overrides.", "responses": { - "202": { - "description": "AttributeIP", + "200": { + "description": "EmailTemplate", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeIp" + "$ref": "#\/components\/schemas\/emailTemplate" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createIpAttribute", - "group": "attributes", - "weight": 744, + "method": "getEmailTemplate", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-ip-attribute.md", + "demo": "console\/get-email-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-ip-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createIpColumn" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "templateId", + "description": "Email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "ProjectEmailTemplateId" }, "in": "path" }, { - "name": "collectionId", - "description": "Collection ID.", - "required": true, + "name": "locale", + "description": "Template locale. If left empty, the fallback locale (en) will be used.", + "required": false, "schema": { "type": "string", - "x-example": "" + "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": "ProjectEmailTemplateLocale" }, - "in": "path" + "in": "query" } + ] + } + }, + "\/console\/variables": { + "get": { + "summary": "Get variables", + "operationId": "consoleVariables", + "tags": [ + "console" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value. Cannot be set when attribute is required.", - "x-example": null, - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false - } - }, - "required": [ - "key", - "required" - ] + "description": "Get all Environment Variables that are relevant for the console.", + "responses": { + "200": { + "description": "Console Variables", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleVariables" + } } } } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "variables", + "group": "console", + "cookies": false, + "type": "", + "demo": "console\/variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip\/{key}": { - "patch": { - "summary": "Update IP address attribute", - "operationId": "databasesUpdateIpAttribute", + "\/databases": { + "get": { + "summary": "List databases", + "operationId": "databasesList", "tags": [ "databases" ], - "description": "Update an ip attribute. Changing the `default` value will not update already existing documents.\n", + "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": "AttributeIP", + "description": "Databases List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeIp" + "$ref": "#\/components\/schemas\/databaseList" } } } @@ -13314,27 +13168,55 @@ }, "deprecated": true, "x-appwrite": { - "method": "updateIpAttribute", - "group": "attributes", - "weight": 745, + "method": "list", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/update-ip-attribute.md", + "demo": "databases\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-ip-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateIpColumn" + "replaceWith": "tablesDB.list" }, + "methods": [ + { + "name": "list", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "queries", + "search", + "total" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/databaseList" + } + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "demo": "databases\/list.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.list" + } + } + ], "auth": { "Project": [] } @@ -13347,84 +13229,56 @@ ], "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", + "required": false, "schema": { - "type": "string", - "x-example": "" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "collectionId", - "description": "Collection 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" + "in": "query" }, { - "name": "key", - "description": "Attribute 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 attribute required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value. Cannot be set when attribute is required.", - "x-example": null, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } + "in": "query" } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line": { + ] + }, "post": { - "summary": "Create line attribute", - "operationId": "databasesCreateLineAttribute", + "summary": "Create database", + "operationId": "databasesCreate", "tags": [ "databases" ], - "description": "Create a geometric line attribute.", + "description": "Create a new Database.\n", "responses": { - "202": { - "description": "AttributeLine", + "201": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeLine" + "$ref": "#\/components\/schemas\/database" } } } @@ -13432,27 +13286,58 @@ }, "deprecated": true, "x-appwrite": { - "method": "createLineAttribute", - "group": "attributes", - "weight": 746, + "method": "create", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-line-attribute.md", + "demo": "databases\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-line-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.createLineColumn" + "replaceWith": "tablesDB.create" }, + "methods": [ + { + "name": "create", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Create a new Database.\n", + "demo": "databases\/create.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + } + } + ], "auth": { "Project": [] } @@ -13463,61 +13348,32 @@ "Key": [] } ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "key": { + "databaseId": { "type": "string", - "description": "Attribute Key.", - "x-example": null + "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": "" }, - "required": { + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "x-example": "" + }, + "enabled": { "type": "boolean", - "description": "Is attribute required?", + "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 - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", - "x-example": "[[1, 2], [3, 4], [5, 6]]", - "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true } }, "required": [ - "key", - "required" + "databaseId", + "name" ] } } @@ -13525,49 +13381,46 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line\/{key}": { - "patch": { - "summary": "Update line attribute", - "operationId": "databasesUpdateLineAttribute", + "\/databases\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "databasesListTransactions", "tags": [ "databases" ], - "description": "Update a line attribute. Changing the `default` value will not update already existing documents.", + "description": "List transactions across all databases.", "responses": { "200": { - "description": "AttributeLine", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeLine" + "$ref": "#\/components\/schemas\/transactionList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateLineAttribute", - "group": "attributes", - "weight": 747, + "method": "listTransactions", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/update-line-attribute.md", + "demo": "databases\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "rows.read", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-line-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateLineColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-transactions.md", "auth": { "Project": [] } @@ -13575,95 +13428,41 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "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#createCollection).", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute 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).", + "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 attribute required?", - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", - "x-example": "[[1, 2], [3, 4], [5, 6]]", - "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New attribute key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required" - ] - } - } + "in": "query" } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext": { + ] + }, "post": { - "summary": "Create longtext attribute", - "operationId": "databasesCreateLongtextAttribute", + "summary": "Create transaction", + "operationId": "databasesCreateTransaction", "tags": [ "databases" ], - "description": "Create a longtext attribute.\n", + "description": "Create a new transaction.", "responses": { - "202": { - "description": "AttributeLongtext", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeLongtext" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -13671,23 +13470,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLongtextAttribute", - "group": "attributes", - "weight": 764, + "method": "createTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/create-longtext-attribute.md", + "demo": "databases\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-longtext-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-transaction.md", "auth": { "Project": [] } @@ -13695,29 +13495,9 @@ "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" + "Key": [], + "Session": [], + "JWT": [] } ], "requestBody": { @@ -13726,58 +13506,35 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "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 + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" } - }, - "required": [ - "key", - "required" - ] + } } } } } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext\/{key}": { - "patch": { - "summary": "Update longtext attribute", - "operationId": "databasesUpdateLongtextAttribute", + "\/databases\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "databasesGetTransaction", "tags": [ "databases" ], - "description": "Update a longtext attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Get a transaction by its unique ID.", "responses": { "200": { - "description": "AttributeLongtext", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeLongtext" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -13785,23 +13542,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLongtextAttribute", - "group": "attributes", - "weight": 765, + "method": "getTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/update-longtext-attribute.md", + "demo": "databases\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "rows.read", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-longtext-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-transaction.md", "auth": { "Project": [] } @@ -13809,89 +13567,38 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "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).", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "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 - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext": { - "post": { - "summary": "Create mediumtext attribute", - "operationId": "databasesCreateMediumtextAttribute", + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "databasesUpdateTransaction", "tags": [ "databases" ], - "description": "Create a mediumtext attribute.\n", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { - "202": { - "description": "AttributeMediumtext", + "200": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeMediumtext" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -13899,23 +13606,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMediumtextAttribute", - "group": "attributes", - "weight": 762, + "method": "updateTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/create-mediumtext-attribute.md", + "demo": "databases\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-mediumtext-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-transaction.md", "auth": { "Project": [] } @@ -13923,27 +13631,19 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "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).", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -13954,82 +13654,56 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "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": { + "commit": { "type": "boolean", - "description": "Is attribute an array?", + "description": "Commit transaction?", + "default": false, "x-example": false }, - "encrypt": { + "rollback": { "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.", + "description": "Rollback transaction?", + "default": false, "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } } } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext attribute", - "operationId": "databasesUpdateMediumtextAttribute", + }, + "delete": { + "summary": "Delete transaction", + "operationId": "databasesDeleteTransaction", "tags": [ "databases" ], - "description": "Update a mediumtext attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Delete a transaction by its unique ID.", "responses": { - "200": { - "description": "AttributeMediumtext", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeMediumtext" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateMediumtextAttribute", - "group": "attributes", - "weight": 763, + "method": "deleteTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/update-mediumtext-attribute.md", + "demo": "databases\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-mediumtext-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-transaction.md", "auth": { "Project": [] } @@ -14037,117 +13711,65 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "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).", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "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 - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point": { + "\/databases\/transactions\/{transactionId}\/operations": { "post": { - "summary": "Create point attribute", - "operationId": "databasesCreatePointAttribute", + "summary": "Create operations", + "operationId": "databasesCreateOperations", "tags": [ "databases" ], - "description": "Create a geometric point attribute.", + "description": "Create multiple operations in a single transaction.", "responses": { - "202": { - "description": "AttributePoint", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributePoint" + "$ref": "#\/components\/schemas\/transaction" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createPointAttribute", - "group": "attributes", - "weight": 748, + "method": "createOperations", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/create-point-attribute.md", + "demo": "databases\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-point-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createPointColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-operations.md", "auth": { "Project": [] } @@ -14155,27 +13777,19 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "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).", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -14186,55 +13800,37 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": false - }, - "default": { + "operations": { "type": "array", - "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", - "x-example": "[1, 2]", + "description": "Array of staged operations.", + "default": [], + "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": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true + "type": "object" + } } - }, - "required": [ - "key", - "required" - ] + } } } } } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point\/{key}": { - "patch": { - "summary": "Update point attribute", - "operationId": "databasesUpdatePointAttribute", + "\/databases\/usage": { + "get": { + "summary": "Get databases usage stats", + "operationId": "databasesListUsage", "tags": [ "databases" ], - "description": "Update a point attribute. Changing the `default` value will not update already existing documents.", + "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": "AttributePoint", + "description": "UsageDatabases", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributePoint" + "$ref": "#\/components\/schemas\/usageDatabases" } } } @@ -14242,123 +13838,102 @@ }, "deprecated": true, "x-appwrite": { - "method": "updatePointAttribute", - "group": "attributes", - "weight": 749, + "method": "listUsage", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-point-attribute.md", + "demo": "databases\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "collections.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-point-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-usage.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updatePointColumn" + "replaceWith": "tablesDB.listUsage" }, + "methods": [ + { + "name": "listUsage", + "namespace": "databases", + "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": "databases\/list-usage.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listUsage" + } + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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#createCollection).", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "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" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", - "x-example": "[1, 2]", - "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New attribute key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required" - ] - } - } + "in": "query" } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon": { - "post": { - "summary": "Create polygon attribute", - "operationId": "databasesCreatePolygonAttribute", + "\/databases\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "databasesGet", "tags": [ "databases" ], - "description": "Create a geometric polygon attribute.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { - "202": { - "description": "AttributePolygon", + "200": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributePolygon" + "$ref": "#\/components\/schemas\/database" } } } @@ -14366,27 +13941,55 @@ }, "deprecated": true, "x-appwrite": { - "method": "createPolygonAttribute", - "group": "attributes", - "weight": 750, + "method": "get", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-polygon-attribute.md", + "demo": "databases\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-polygon-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.createPolygonColumn" + "replaceWith": "tablesDB.get" }, + "methods": [ + { + "name": "get", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "demo": "databases\/get.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.get" + } + } + ], "auth": { "Project": [] } @@ -14407,73 +14010,23 @@ "x-example": "" }, "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", - "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon\/{key}": { - "patch": { - "summary": "Update polygon attribute", - "operationId": "databasesUpdatePolygonAttribute", + ] + }, + "put": { + "summary": "Update database", + "operationId": "databasesUpdate", "tags": [ "databases" ], - "description": "Update a polygon attribute. Changing the `default` value will not update already existing documents.", + "description": "Update a database by its unique ID.", "responses": { "200": { - "description": "AttributePolygon", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributePolygon" + "$ref": "#\/components\/schemas\/database" } } } @@ -14481,27 +14034,57 @@ }, "deprecated": true, "x-appwrite": { - "method": "updatePolygonAttribute", - "group": "attributes", - "weight": 751, + "method": "update", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/update-polygon-attribute.md", + "demo": "databases\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-polygon-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updatePolygonColumn" + "replaceWith": "tablesDB.update" }, + "methods": [ + { + "name": "update", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/database" + } + ], + "description": "Update a database by its unique ID.", + "demo": "databases\/update.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.update" + } + } + ], "auth": { "Project": [] } @@ -14522,25 +14105,6 @@ "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#createCollection).", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" } ], "requestBody": { @@ -14549,83 +14113,85 @@ "schema": { "type": "object", "properties": { - "required": { + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "x-example": "" + }, + "enabled": { "type": "boolean", - "description": "Is attribute required?", + "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 - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", - "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New attribute key.", - "x-example": null, - "x-nullable": true } - }, - "required": [ - "required" - ] + } } } } } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship": { - "post": { - "summary": "Create relationship attribute", - "operationId": "databasesCreateRelationshipAttribute", + }, + "delete": { + "summary": "Delete database", + "operationId": "databasesDelete", "tags": [ "databases" ], - "description": "Create relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "responses": { - "202": { - "description": "AttributeRelationship", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/attributeRelationship" - } - } - } + "204": { + "description": "No content" } }, "deprecated": true, "x-appwrite": { - "method": "createRelationshipAttribute", - "group": "attributes", - "weight": 752, + "method": "delete", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-relationship-attribute.md", + "demo": "databases\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-relationship-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.createRelationshipColumn" + "replaceWith": "tablesDB.delete" }, + "methods": [ + { + "name": "delete", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "demo": "databases\/delete.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.delete" + } + } + ], "auth": { "Project": [] } @@ -14646,97 +14212,25 @@ "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": { - "relatedCollectionId": { - "type": "string", - "description": "Related Collection ID.", - "x-example": "" - }, - "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": "Attribute Key.", - "x-example": null, - "x-nullable": true - }, - "twoWayKey": { - "type": "string", - "description": "Two Way Attribute 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": [ - "relatedCollectionId", - "type" - ] - } - } } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { - "patch": { - "summary": "Update relationship attribute", - "operationId": "databasesUpdateRelationshipAttribute", + "\/databases\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "databasesListCollections", "tags": [ "databases" ], - "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", "responses": { "200": { - "description": "AttributeRelationship", + "description": "Collections List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeRelationship" + "$ref": "#\/components\/schemas\/collectionList" } } } @@ -14744,26 +14238,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "updateRelationshipAttribute", - "group": "attributes", - "weight": 753, + "method": "listCollections", + "group": "collections", "cookies": false, "type": "", - "demo": "databases\/update-relationship-attribute.md", + "demo": "databases\/list-collections.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\/update-relationship-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-collections.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateRelationshipColumn" + "replaceWith": "tablesDB.listTables" }, "auth": { "Project": [] @@ -14787,71 +14280,56 @@ "in": "path" }, { - "name": "collectionId", - "description": "Collection 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": "" + "x-example": "", + "default": "" }, - "in": "path" + "in": "query" }, { - "name": "key", - "description": "Attribute 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": { - "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 - } - } - } - } + "in": "query" } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { + ] + }, "post": { - "summary": "Create string attribute", - "operationId": "databasesCreateStringAttribute", + "summary": "Create collections", + "operationId": "databasesCreateCollection", "tags": [ "databases" ], - "description": "Create a string attribute.\n", + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { - "202": { - "description": "AttributeString", + "201": { + "description": "Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeString" + "$ref": "#\/components\/schemas\/collection" } } } @@ -14859,12 +14337,11 @@ }, "deprecated": true, "x-appwrite": { - "method": "createStringAttribute", - "group": "attributes", - "weight": 754, + "method": "createCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "databases\/create-string-attribute.md", + "demo": "databases\/create-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -14875,10 +14352,10 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-string-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-collection.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.createStringColumn" + "replaceWith": "tablesDB.createTable" }, "auth": { "Project": [] @@ -14900,16 +14377,6 @@ "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": { @@ -14918,43 +14385,59 @@ "schema": { "type": "object", "properties": { - "key": { + "collectionId": { "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 + "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": "" }, - "default": { + "name": { "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "", + "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 }, - "array": { + "documentSecurity": { "type": "boolean", - "description": "Is attribute an array?", + "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 }, - "encrypt": { + "enabled": { "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.", + "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), 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": [ - "key", - "size", - "required" + "collectionId", + "name" ] } } @@ -14962,21 +14445,21 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { - "patch": { - "summary": "Update string attribute", - "operationId": "databasesUpdateStringAttribute", + "\/databases\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "databasesGetCollection", "tags": [ "databases" ], - "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", "responses": { "200": { - "description": "AttributeString", + "description": "Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeString" + "$ref": "#\/components\/schemas\/collection" } } } @@ -14984,26 +14467,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "updateStringAttribute", - "group": "attributes", - "weight": 755, + "method": "getCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "databases\/update-string-attribute.md", + "demo": "databases\/get-collection.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\/update-string-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateStringColumn" + "replaceWith": "tablesDB.getTable" }, "auth": { "Project": [] @@ -15028,93 +14510,42 @@ }, { "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", "x-example": "" }, "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "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 - }, - "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.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { - "post": { - "summary": "Create text attribute", - "operationId": "databasesCreateTextAttribute", + ] + }, + "put": { + "summary": "Update collection", + "operationId": "databasesUpdateCollection", "tags": [ "databases" ], - "description": "Create a text attribute.\n", + "description": "Update a collection by its unique ID.", "responses": { - "202": { - "description": "AttributeText", + "200": { + "description": "Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeText" + "$ref": "#\/components\/schemas\/collection" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createTextAttribute", - "group": "attributes", - "weight": 760, + "method": "updateCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "databases\/create-text-attribute.md", + "demo": "databases\/update-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -15125,7 +14556,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\/update-collection.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTable" + }, "auth": { "Project": [] } @@ -15149,7 +14584,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", @@ -15164,82 +14599,154 @@ "schema": { "type": "object", "properties": { - "key": { + "name": { "type": "string", - "description": "Attribute Key.", - "x-example": null + "description": "Collection name. Max length: 128 chars.", + "x-example": "" }, - "required": { + "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 + }, + "documentSecurity": { "type": "boolean", - "description": "Is attribute required?", + "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 }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "", - "x-nullable": true - }, - "array": { + "enabled": { "type": "boolean", - "description": "Is attribute an array?", + "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 }, - "encrypt": { + "purge": { "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.", + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "default": false, "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } } } + }, + "delete": { + "summary": "Delete collection", + "operationId": "databasesDeleteCollection", + "tags": [ + "databases" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "method": "deleteCollection", + "group": "collections", + "cookies": false, + "type": "", + "demo": "databases\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-collection.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTable" + }, + "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" + } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { - "patch": { - "summary": "Update text attribute", - "operationId": "databasesUpdateTextAttribute", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": { + "get": { + "summary": "List attributes", + "operationId": "databasesListAttributes", "tags": [ "databases" ], - "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", + "description": "List attributes in the collection.", "responses": { "200": { - "description": "AttributeText", + "description": "Attributes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeText" + "$ref": "#\/components\/schemas\/attributeList" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateTextAttribute", + "method": "listAttributes", "group": "attributes", - "weight": 761, "cookies": false, "type": "", - "demo": "databases\/update-text-attribute.md", + "demo": "databases\/list-attributes.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\/update-text-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-attributes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listColumns" + }, "auth": { "Project": [] } @@ -15263,7 +14770,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", @@ -15272,64 +14779,47 @@ "in": "path" }, { - "name": "key", - "description": "Attribute 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 attributes: key, type, size, required, array, status, 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 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 - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "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" } - } + ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint": { "post": { - "summary": "Create URL attribute", - "operationId": "databasesCreateUrlAttribute", + "summary": "Create bigint attribute", + "operationId": "databasesCreateBigIntAttribute", "tags": [ "databases" ], - "description": "Create a URL attribute.\n", + "description": "Create a bigint attribute. Optionally, minimum and maximum values can be provided.\n", "responses": { "202": { - "description": "AttributeURL", + "description": "AttributeBigInt", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeUrl" + "$ref": "#\/components\/schemas\/attributeBigint" } } } @@ -15337,12 +14827,11 @@ }, "deprecated": true, "x-appwrite": { - "method": "createUrlAttribute", + "method": "createBigIntAttribute", "group": "attributes", - "weight": 756, "cookies": false, "type": "", - "demo": "databases\/create-url-attribute.md", + "demo": "databases\/create-big-int-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -15353,10 +14842,10 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-url-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-bigint-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.createUrlColumn" + "replaceWith": "tablesDB.createBigIntColumn" }, "auth": { "Project": [] @@ -15406,20 +14895,35 @@ "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": "https:\/\/example.com", - "format": "url", + "min": { + "type": "integer", + "description": "Minimum value", + "x-example": null, + "format": "int64", "x-nullable": true }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false - } - }, - "required": [ + "max": { + "type": "integer", + "description": "Maximum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when attribute is required.", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false + } + }, + "required": [ "key", "required" ] @@ -15429,21 +14933,21 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint\/{key}": { "patch": { - "summary": "Update URL attribute", - "operationId": "databasesUpdateUrlAttribute", + "summary": "Update bigint attribute", + "operationId": "databasesUpdateBigIntAttribute", "tags": [ "databases" ], - "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update a bigint attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "AttributeURL", + "description": "AttributeBigInt", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeUrl" + "$ref": "#\/components\/schemas\/attributeBigint" } } } @@ -15451,12 +14955,11 @@ }, "deprecated": true, "x-appwrite": { - "method": "updateUrlAttribute", + "method": "updateBigIntAttribute", "group": "attributes", - "weight": 757, "cookies": false, "type": "", - "demo": "databases\/update-url-attribute.md", + "demo": "databases\/update-big-int-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -15467,10 +14970,10 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-url-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-bigint-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateUrlColumn" + "replaceWith": "tablesDB.updateBigIntColumn" }, "auth": { "Project": [] @@ -15524,11 +15027,25 @@ "description": "Is attribute 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": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "https:\/\/example.com", - "format": "url", + "type": "integer", + "description": "Default value. Cannot be set when attribute is required.", + "x-example": null, + "format": "int64", "x-nullable": true }, "newKey": { @@ -15548,34 +15065,33 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": { "post": { - "summary": "Create varchar attribute", - "operationId": "databasesCreateVarcharAttribute", + "summary": "Create boolean attribute", + "operationId": "databasesCreateBooleanAttribute", "tags": [ "databases" ], - "description": "Create a varchar attribute.\n", + "description": "Create a boolean attribute.\n", "responses": { "202": { - "description": "AttributeVarchar", + "description": "AttributeBoolean", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeVarchar" + "$ref": "#\/components\/schemas\/attributeBoolean" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createVarcharAttribute", + "method": "createBooleanAttribute", "group": "attributes", - "weight": 758, "cookies": false, "type": "", - "demo": "databases\/create-varchar-attribute.md", + "demo": "databases\/create-boolean-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -15586,7 +15102,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-boolean-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBooleanColumn" + }, "auth": { "Project": [] } @@ -15630,37 +15150,26 @@ "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", + "type": "boolean", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "", + "x-example": false, "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.", + "default": false, "x-example": false } }, "required": [ "key", - "size", "required" ] } @@ -15669,34 +15178,33 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": { "patch": { - "summary": "Update varchar attribute", - "operationId": "databasesUpdateVarcharAttribute", + "summary": "Update boolean attribute", + "operationId": "databasesUpdateBooleanAttribute", "tags": [ "databases" ], - "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.", "responses": { "200": { - "description": "AttributeVarchar", + "description": "AttributeBoolean", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeVarchar" + "$ref": "#\/components\/schemas\/attributeBoolean" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateVarcharAttribute", + "method": "updateBooleanAttribute", "group": "attributes", - "weight": 759, "cookies": false, "type": "", - "demo": "databases\/update-varchar-attribute.md", + "demo": "databases\/update-boolean-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -15707,7 +15215,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-boolean-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBooleanColumn" + }, "auth": { "Project": [] } @@ -15731,7 +15243,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 collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", "required": true, "schema": { "type": "string", @@ -15761,21 +15273,14 @@ "x-example": false }, "default": { - "type": "string", + "type": "boolean", "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": false, "x-nullable": true }, "newKey": { "type": "string", - "description": "New Attribute Key.", + "description": "New attribute key.", "x-example": null, "x-nullable": true } @@ -15790,103 +15295,21 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { - "get": { - "summary": "Get attribute", - "operationId": "databasesGetAttribute", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime": { + "post": { + "summary": "Create datetime attribute", + "operationId": "databasesCreateDatetimeAttribute", "tags": [ "databases" ], - "description": "Get attribute by ID.", + "description": "Create a date time attribute according to the ISO 8601 standard.", "responses": { - "200": { - "description": "AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributeString", + "202": { + "description": "AttributeDatetime", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/attributeBoolean" - }, - { - "$ref": "#\/components\/schemas\/attributeInteger" - }, - { - "$ref": "#\/components\/schemas\/attributeFloat" - }, - { - "$ref": "#\/components\/schemas\/attributeEmail" - }, - { - "$ref": "#\/components\/schemas\/attributeEnum" - }, - { - "$ref": "#\/components\/schemas\/attributeUrl" - }, - { - "$ref": "#\/components\/schemas\/attributeIp" - }, - { - "$ref": "#\/components\/schemas\/attributeDatetime" - }, - { - "$ref": "#\/components\/schemas\/attributeRelationship" - }, - { - "$ref": "#\/components\/schemas\/attributeString" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "boolean": "#\/components\/schemas\/attributeBoolean", - "integer": "#\/components\/schemas\/attributeInteger", - "double": "#\/components\/schemas\/attributeFloat", - "string": "#\/components\/schemas\/attributeString", - "datetime": "#\/components\/schemas\/attributeDatetime", - "relationship": "#\/components\/schemas\/attributeRelationship" - }, - "x-propertyNames": [ - "type", - "format" - ], - "x-mapping": { - "#\/components\/schemas\/attributeBoolean": { - "type": "boolean" - }, - "#\/components\/schemas\/attributeInteger": { - "type": "integer" - }, - "#\/components\/schemas\/attributeFloat": { - "type": "double" - }, - "#\/components\/schemas\/attributeEmail": { - "type": "string", - "format": "email" - }, - "#\/components\/schemas\/attributeEnum": { - "type": "string", - "format": "enum" - }, - "#\/components\/schemas\/attributeUrl": { - "type": "string", - "format": "url" - }, - "#\/components\/schemas\/attributeIp": { - "type": "string", - "format": "ip" - }, - "#\/components\/schemas\/attributeDatetime": { - "type": "datetime" - }, - "#\/components\/schemas\/attributeRelationship": { - "type": "relationship" - }, - "#\/components\/schemas\/attributeString": { - "type": "string" - } - } - } + "$ref": "#\/components\/schemas\/attributeDatetime" } } } @@ -15894,26 +15317,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "getAttribute", + "method": "createDatetimeAttribute", "group": "attributes", - "weight": 727, "cookies": false, "type": "", - "demo": "databases\/get-attribute.md", + "demo": "databases\/create-datetime-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", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-datetime-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.getColumn" + "replaceWith": "tablesDB.createDatetimeColumn" }, "auth": { "Project": [] @@ -15938,45 +15360,82 @@ }, { "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#createCollection).", "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", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": { + "patch": { + "summary": "Update datetime attribute", + "operationId": "databasesUpdateDatetimeAttribute", "tags": [ "databases" ], - "description": "Deletes an attribute.", + "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "AttributeDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeDatetime" + } + } + } } }, "deprecated": true, "x-appwrite": { - "method": "deleteAttribute", + "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 728, "cookies": false, "type": "", - "demo": "databases\/delete-attribute.md", + "demo": "databases\/update-datetime-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -15987,10 +15446,10 @@ ], "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\/update-datetime-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.deleteColumn" + "replaceWith": "tablesDB.updateDatetimeColumn" }, "auth": { "Project": [] @@ -16032,24 +15491,57 @@ }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New attribute key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { - "get": { - "summary": "List documents", - "operationId": "databasesListDocuments", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": { + "post": { + "summary": "Create email attribute", + "operationId": "databasesCreateEmailAttribute", "tags": [ "databases" ], - "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "description": "Create an email attribute.\n", "responses": { - "200": { - "description": "Documents List", + "202": { + "description": "AttributeEmail", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/documentList" + "$ref": "#\/components\/schemas\/attributeEmail" } } } @@ -16057,28 +15549,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "listDocuments", - "group": "documents", - "weight": 918, + "method": "createEmailAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/list-documents.md", + "demo": "databases\/create-email-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-email-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.listRows" + "replaceWith": "tablesDB.createEmailColumn" }, "auth": { "Project": [] @@ -16087,9 +15576,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -16105,76 +15592,70 @@ }, { "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", "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 caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" } - ] - }, - "post": { - "summary": "Create document", - "operationId": "databasesCreateDocument", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "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": "email@example.com", + "format": "email", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": { + "patch": { + "summary": "Update email attribute", + "operationId": "databasesUpdateEmailAttribute", "tags": [ "databases" ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n", "responses": { - "201": { - "description": "Document", + "200": { + "description": "AttributeEmail", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/attributeEmail" } } } @@ -16182,98 +15663,26 @@ }, "deprecated": true, "x-appwrite": { - "method": "createDocument", - "group": "documents", - "weight": 715, + "method": "updateEmailAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/update-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-email-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.createRow" + "replaceWith": "tablesDB.updateEmailColumn" }, - "methods": [ - { - "name": "createDocument", - "namespace": "databases", - "desc": "Create document", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documentId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documentId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/document" - } - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "demo": "databases\/create-document.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createRow" - } - }, - { - "name": "createDocuments", - "namespace": "databases", - "desc": "Create documents", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documents", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documents" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/documentList" - } - ], - "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "demo": "databases\/create-documents.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createRows" - } - } - ], "auth": { "Project": [] } @@ -16281,9 +15690,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -16299,13 +15706,22 @@ }, { "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.", + "description": "Collection ID.", "required": true, "schema": { "type": "string", "x-example": "" }, "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -16314,59 +15730,50 @@ "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}" + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": 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" - }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "email@example.com", + "format": "email", "x-nullable": true }, - "documents": { - "type": "array", - "description": "Array of documents data as JSON objects.", - "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { + "newKey": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", + "description": "New Attribute Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } } } - }, - "put": { - "summary": "Upsert documents", - "operationId": "databasesUpsertDocuments", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum": { + "post": { + "summary": "Create enum attribute", + "operationId": "databasesCreateEnumAttribute", "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", + "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n", "responses": { - "201": { - "description": "Documents List", + "202": { + "description": "AttributeEnum", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/documentList" + "$ref": "#\/components\/schemas\/attributeEnum" } } } @@ -16374,61 +15781,26 @@ }, "deprecated": true, "x-appwrite": { - "method": "upsertDocuments", - "group": "documents", - "weight": 720, + "method": "createEnumAttribute", + "group": "attributes", "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", + "demo": "databases\/create-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-enum-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.upsertRows" + "replaceWith": "tablesDB.createEnumColumn" }, - "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": [] } @@ -16467,43 +15839,63 @@ "schema": { "type": "object", "properties": { - "documents": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "elements": { "type": "array", - "description": "Array of document data as JSON objects. May contain partial documents.", + "description": "Array of enum values.", "x-example": null, "items": { - "type": "object" + "type": "string" } }, - "transactionId": { + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", + "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?", + "default": false, + "x-example": false } }, "required": [ - "documents" + "key", + "elements", + "required" ] } } } } - }, + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": { "patch": { - "summary": "Update documents", - "operationId": "databasesUpdateDocuments", + "summary": "Update enum attribute", + "operationId": "databasesUpdateEnumAttribute", "tags": [ "databases" ], - "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Documents List", + "description": "AttributeEnum", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/documentList" + "$ref": "#\/components\/schemas\/attributeEnum" } } } @@ -16511,26 +15903,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "updateDocuments", - "group": "documents", - "weight": 718, + "method": "updateEnumAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/update-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/update-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-enum-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateRows" + "replaceWith": "tablesDB.updateEnumColumn" }, "auth": { "Project": [] @@ -16562,6 +15953,15 @@ "x-example": "" }, "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -16570,45 +15970,58 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Document data as JSON object. Include only attribute 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": { + "elements": { "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.", + "description": "Updated list of enum values.", "x-example": null, "items": { "type": "string" } }, - "transactionId": { + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "elements", + "required", + "default" + ] } } } } - }, - "delete": { - "summary": "Delete documents", - "operationId": "databasesDeleteDocuments", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": { + "post": { + "summary": "Create float attribute", + "operationId": "databasesCreateFloatAttribute", "tags": [ "databases" ], - "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n", "responses": { - "200": { - "description": "Documents List", + "202": { + "description": "AttributeFloat", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/documentList" + "$ref": "#\/components\/schemas\/attributeFloat" } } } @@ -16616,26 +16029,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "deleteDocuments", - "group": "documents", - "weight": 722, + "method": "createFloatAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/delete-documents.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/create-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-float-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.deleteRows" + "replaceWith": "tablesDB.createFloatColumn" }, "auth": { "Project": [] @@ -16660,7 +16072,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", @@ -16675,42 +16087,69 @@ "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.", + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "min": { + "type": "number", + "description": "Minimum value.", "x-example": null, - "items": { - "type": "string" - } + "format": "float", + "x-nullable": true }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", + "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 attribute an array?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } } } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { - "get": { - "summary": "Get document", - "operationId": "databasesGetDocument", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": { + "patch": { + "summary": "Update float attribute", + "operationId": "databasesUpdateFloatAttribute", "tags": [ "databases" ], - "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Document", + "description": "AttributeFloat", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/attributeFloat" } } } @@ -16718,28 +16157,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "getDocument", - "group": "documents", - "weight": 716, + "method": "updateFloatAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/get-document.md", + "demo": "databases\/update-float-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-float-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.getRow" + "replaceWith": "tablesDB.updateFloatColumn" }, "auth": { "Project": [] @@ -16748,9 +16184,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -16766,7 +16200,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", @@ -16775,120 +16209,106 @@ "in": "path" }, { - "name": "documentId", - "description": "Document ID.", + "name": "key", + "description": "Attribute Key.", "required": true, "schema": { - "type": "string", - "x-example": "" + "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.", - "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": "databasesUpsertDocument", - "tags": [ - "databases" ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "responses": { - "201": { - "description": "Document", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/document" - } - } - } - } - }, - "deprecated": true, - "x-appwrite": { - "method": "upsertDocument", - "group": "documents", - "weight": 719, - "cookies": false, - "type": "", - "demo": "databases\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-document.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.upsertRow" - }, - "methods": [ - { - "name": "upsertDocument", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documentId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documentId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/document" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is attribute 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 Attribute Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": { + "post": { + "summary": "Create integer attribute", + "operationId": "databasesCreateIntegerAttribute", + "tags": [ + "databases" + ], + "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "AttributeInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeInteger" } - ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "demo": "databases\/upsert-document.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.upsertRow" } } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "createIntegerAttribute", + "group": "attributes", + "cookies": false, + "type": "", + "demo": "databases\/create-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-integer-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIntegerColumn" + }, "auth": { "Project": [] } @@ -16896,9 +16316,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -16921,16 +16339,6 @@ "x-example": "" }, "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" } ], "requestBody": { @@ -16939,46 +16347,69 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" + "key": { + "type": "string", + "description": "Attribute 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" - }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "min": { + "type": "integer", + "description": "Minimum value", + "x-example": null, + "format": "int64", "x-nullable": true }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", + "max": { + "type": "integer", + "description": "Maximum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when attribute is required.", + "x-example": null, + "format": "int64", "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } } } - }, + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": { "patch": { - "summary": "Update document", - "operationId": "databasesUpdateDocument", + "summary": "Update integer attribute", + "operationId": "databasesUpdateIntegerAttribute", "tags": [ "databases" ], - "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Document", + "description": "AttributeInteger", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/attributeInteger" } } } @@ -16986,28 +16417,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "updateDocument", - "group": "documents", - "weight": 717, + "method": "updateIntegerAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/update-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-integer-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateRow" + "replaceWith": "tablesDB.updateIntegerColumn" }, "auth": { "Project": [] @@ -17016,9 +16444,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -17043,12 +16469,11 @@ "in": "path" }, { - "name": "documentId", - "description": "Document ID.", + "name": "key", + "description": "Attribute Key.", "required": true, "schema": { - "type": "string", - "x-example": "" + "type": "string" }, "in": "path" } @@ -17059,68 +16484,90 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Document data as JSON object. Include only attribute 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 attribute 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" - }, + "min": { + "type": "integer", + "description": "Minimum value", + "x-example": null, + "format": "int64", "x-nullable": true }, - "transactionId": { + "max": { + "type": "integer", + "description": "Maximum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when attribute is required.", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "newKey": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", + "description": "New Attribute Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } } } - }, - "delete": { - "summary": "Delete document", - "operationId": "databasesDeleteDocument", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip": { + "post": { + "summary": "Create IP address attribute", + "operationId": "databasesCreateIpAttribute", "tags": [ "databases" ], - "description": "Delete a document by its unique ID.", + "description": "Create IP address attribute.\n", "responses": { - "204": { - "description": "No content" + "202": { + "description": "AttributeIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeIp" + } + } + } } }, "deprecated": true, "x-appwrite": { - "method": "deleteDocument", - "group": "documents", - "weight": 721, + "method": "createIpAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/create-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-ip-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.deleteRow" + "replaceWith": "tablesDB.createIpColumn" }, "auth": { "Project": [] @@ -17129,9 +16576,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -17147,23 +16592,13 @@ }, { "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", "x-example": "" }, "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" } ], "requestBody": { @@ -17172,34 +16607,54 @@ "schema": { "type": "object", "properties": { - "transactionId": { + "key": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value. Cannot be set when attribute is required.", + "x-example": null, "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } } } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/logs": { - "get": { - "summary": "List document logs", - "operationId": "databasesListDocumentLogs", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip\/{key}": { + "patch": { + "summary": "Update IP address attribute", + "operationId": "databasesUpdateIpAttribute", "tags": [ "databases" ], - "description": "Get the document activity logs list by its unique ID.", + "description": "Update an ip attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Logs List", + "description": "AttributeIP", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/attributeIp" } } } @@ -17207,25 +16662,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "listDocumentLogs", - "group": "logs", - "weight": 724, + "method": "updateIpAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/list-document-logs.md", + "demo": "databases\/update-ip-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-document-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-ip-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.listRowLogs" + "replaceWith": "tablesDB.updateIpColumn" }, "auth": { "Project": [] @@ -17233,7 +16688,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -17258,46 +16714,64 @@ "in": "path" }, { - "name": "documentId", - "description": "Document ID.", + "name": "key", + "description": "Attribute Key.", "required": true, "schema": { - "type": "string", - "x-example": "" + "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). 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 attribute required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value. Cannot be set when attribute is required.", + "x-example": null, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { - "patch": { - "summary": "Decrement document attribute", - "operationId": "databasesDecrementDocumentAttribute", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line": { + "post": { + "summary": "Create line attribute", + "operationId": "databasesCreateLineAttribute", "tags": [ "databases" ], - "description": "Decrement a specific attribute of a document by a given value.", + "description": "Create a geometric line attribute.", "responses": { - "200": { - "description": "Document", + "202": { + "description": "AttributeLine", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/attributeLine" } } } @@ -17305,28 +16779,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "decrementDocumentAttribute", - "group": "documents", - "weight": 726, + "method": "createLineAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/decrement-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/create-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ - "client", - "server", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/decrement-document-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-line-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.decrementRowColumn" + "replaceWith": "tablesDB.createLineColumn" }, "auth": { "Project": [] @@ -17335,8 +16806,6 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], @@ -17353,32 +16822,13 @@ }, { "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": "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": { @@ -17387,47 +16837,55 @@ "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" - }, - "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", - "x-nullable": true - }, - "transactionId": { + "key": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, "x-nullable": true } - } + }, + "required": [ + "key", + "required" + ] } } } } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line\/{key}": { "patch": { - "summary": "Increment document attribute", - "operationId": "databasesIncrementDocumentAttribute", + "summary": "Update line attribute", + "operationId": "databasesUpdateLineAttribute", "tags": [ "databases" ], - "description": "Increment a specific attribute of a document by a given value.", + "description": "Update a line attribute. Changing the `default` value will not update already existing documents.", "responses": { "200": { - "description": "Document", + "description": "AttributeLine", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/attributeLine" } } } @@ -17435,28 +16893,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "incrementDocumentAttribute", - "group": "documents", - "weight": 725, + "method": "updateLineAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/increment-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/update-line-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ - "client", - "server", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/increment-document-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-line-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.incrementRowColumn" + "replaceWith": "tablesDB.updateLineColumn" }, "auth": { "Project": [] @@ -17465,8 +16920,6 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], @@ -17483,7 +16936,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#createCollection).", "required": true, "schema": { "type": "string", @@ -17492,18 +16945,8 @@ "in": "path" }, { - "name": "documentId", - "description": "Document ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", + "name": "key", + "description": "Attribute Key.", "required": true, "schema": { "type": "string" @@ -17517,75 +16960,78 @@ "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" + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false }, - "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", + "default": { + "type": "array", + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, "x-nullable": true }, - "transactionId": { + "newKey": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", + "description": "New attribute key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required" + ] } } } } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "databasesListIndexes", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext": { + "post": { + "summary": "Create longtext attribute", + "operationId": "databasesCreateLongtextAttribute", "tags": [ "databases" ], - "description": "List indexes in the collection.", + "description": "Create a longtext attribute.\n", "responses": { - "200": { - "description": "Indexes List", + "202": { + "description": "AttributeLongtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/indexList" + "$ref": "#\/components\/schemas\/attributeLongtext" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listIndexes", - "group": "indexes", - "weight": 769, + "method": "createLongtextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/list-indexes.md", + "demo": "databases\/create-longtext-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\/list-indexes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listIndexes" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-longtext-attribute.md", "auth": { "Project": [] } @@ -17616,60 +17062,80 @@ "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" } - ] - }, - "post": { - "summary": "Create index", - "operationId": "databasesCreateIndex", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "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?", + "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", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext\/{key}": { + "patch": { + "summary": "Update longtext attribute", + "operationId": "databasesUpdateLongtextAttribute", "tags": [ "databases" ], - "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "description": "Update a longtext attribute. Changing the `default` value will not update already existing documents.\n", "responses": { - "202": { - "description": "Index", + "200": { + "description": "AttributeLongtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/index" + "$ref": "#\/components\/schemas\/attributeLongtext" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createIndex", - "group": "indexes", - "weight": 766, + "method": "updateLongtextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/create-index.md", + "demo": "databases\/update-longtext-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -17680,11 +17146,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-index.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createIndex" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-longtext-attribute.md", "auth": { "Project": [] } @@ -17715,6 +17177,15 @@ "x-example": "" }, "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -17723,59 +17194,27 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Index Key.", - "x-example": null + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false }, - "type": { + "default": { "type": "string", - "description": "Index type.", - "x-example": "key", - "enum": [ - "key", - "fulltext", - "unique", - "spatial" - ], - "x-enum-name": "DatabasesIndexType", - "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": [] - } + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "", + "x-nullable": true }, - "lengths": { - "type": "array", - "description": "Length of index. Maximum of 100", + "newKey": { + "type": "string", + "description": "New Attribute Key.", "x-example": null, - "items": { - "type": "integer" - } + "x-nullable": true } }, "required": [ - "key", - "type", - "attributes" + "required", + "default" ] } } @@ -17783,49 +17222,44 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { - "get": { - "summary": "Get index", - "operationId": "databasesGetIndex", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext": { + "post": { + "summary": "Create mediumtext attribute", + "operationId": "databasesCreateMediumtextAttribute", "tags": [ "databases" ], - "description": "Get an index by its unique ID.", + "description": "Create a mediumtext attribute.\n", "responses": { - "200": { - "description": "Index", + "202": { + "description": "AttributeMediumtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/index" + "$ref": "#\/components\/schemas\/attributeMediumtext" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getIndex", - "group": "indexes", - "weight": 767, + "method": "createMediumtextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/get-index.md", + "demo": "databases\/create-mediumtext-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-index.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getIndex" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-mediumtext-attribute.md", "auth": { "Project": [] } @@ -17856,38 +17290,80 @@ "x-example": "" }, "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" } - ] - }, - "delete": { - "summary": "Delete index", - "operationId": "databasesDeleteIndex", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "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?", + "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", + "required" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext attribute", + "operationId": "databasesUpdateMediumtextAttribute", "tags": [ "databases" ], - "description": "Delete an index.", + "description": "Update a mediumtext attribute. Changing the `default` value will not update already existing documents.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "AttributeMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeMediumtext" + } + } + } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteIndex", - "group": "indexes", - "weight": 768, + "method": "updateMediumtextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/delete-index.md", + "demo": "databases\/update-mediumtext-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -17898,11 +17374,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-index.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteIndex" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-mediumtext-attribute.md", "auth": { "Project": [] } @@ -17936,31 +17408,63 @@ }, { "name": "key", - "description": "Index Key.", + "description": "Attribute Key.", "required": true, "schema": { "type": "string" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "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 + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/logs": { - "get": { - "summary": "List collection logs", - "operationId": "databasesListCollectionLogs", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point": { + "post": { + "summary": "Create point attribute", + "operationId": "databasesCreatePointAttribute", "tags": [ "databases" ], - "description": "Get the collection activity logs list by its unique ID.", + "description": "Create a geometric point attribute.", "responses": { - "200": { - "description": "Logs List", + "202": { + "description": "AttributePoint", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/attributePoint" } } } @@ -17968,25 +17472,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "listCollectionLogs", - "group": "collections", - "weight": 713, + "method": "createPointAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/list-collection-logs.md", + "demo": "databases\/create-point-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-point-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.listTableLogs" + "replaceWith": "tablesDB.createPointColumn" }, "auth": { "Project": [] @@ -17994,7 +17498,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -18010,45 +17515,70 @@ }, { "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": "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": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "x-example": "[1, 2]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/usage": { - "get": { - "summary": "Get collection usage stats", - "operationId": "databasesGetCollectionUsage", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point\/{key}": { + "patch": { + "summary": "Update point attribute", + "operationId": "databasesUpdatePointAttribute", "tags": [ "databases" ], - "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.", + "description": "Update a point attribute. Changing the `default` value will not update already existing documents.", "responses": { "200": { - "description": "UsageCollection", + "description": "AttributePoint", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageCollection" + "$ref": "#\/components\/schemas\/attributePoint" } } } @@ -18056,25 +17586,25 @@ }, "deprecated": true, "x-appwrite": { - "method": "getCollectionUsage", - "group": null, - "weight": 714, + "method": "updatePointAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/get-collection-usage.md", + "demo": "databases\/update-point-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-point-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.getTableUsage" + "replaceWith": "tablesDB.updatePointColumn" }, "auth": { "Project": [] @@ -18082,7 +17612,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -18097,55 +17628,80 @@ "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, "schema": { "type": "string", - "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": "collectionId", - "description": "Collection ID.", + "name": "key", + "description": "Attribute Key.", "required": true, "schema": { - "type": "string", - "x-example": "" + "type": "string" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "x-example": "[1, 2]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New attribute key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } } }, - "\/databases\/{databaseId}\/logs": { - "get": { - "summary": "List database logs", - "operationId": "databasesListLogs", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon": { + "post": { + "summary": "Create polygon attribute", + "operationId": "databasesCreatePolygonAttribute", "tags": [ "databases" ], - "description": "Get the database activity logs list by its unique ID.", + "description": "Create a geometric polygon attribute.", "responses": { - "200": { - "description": "Logs List", + "202": { + "description": "AttributePolygon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/attributePolygon" } } } @@ -18153,63 +17709,34 @@ }, "deprecated": true, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 705, + "method": "createPolygonAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/list-logs.md", + "demo": "databases\/create-polygon-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-polygon-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.listDatabaseLogs" + "replaceWith": "tablesDB.createPolygonColumn" }, - "methods": [ - { - "name": "listLogs", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "queries" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/logList" - } - ], - "description": "Get the database activity logs list by its unique ID.", - "demo": "databases\/list-logs.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listDatabaseLogs" - } - } - ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -18224,36 +17751,71 @@ "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": "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": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } } }, - "\/databases\/{databaseId}\/usage": { - "get": { - "summary": "Get database usage stats", - "operationId": "databasesGetUsage", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon\/{key}": { + "patch": { + "summary": "Update polygon attribute", + "operationId": "databasesUpdatePolygonAttribute", "tags": [ "databases" ], - "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.", + "description": "Update a polygon attribute. Changing the `default` value will not update already existing documents.", "responses": { "200": { - "description": "UsageDatabase", + "description": "AttributePolygon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageDatabase" + "$ref": "#\/components\/schemas\/attributePolygon" } } } @@ -18261,63 +17823,34 @@ }, "deprecated": true, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 706, + "method": "updatePolygonAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/get-usage.md", + "demo": "databases\/update-polygon-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-database-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-polygon-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.getUsage" + "replaceWith": "tablesDB.updatePolygonColumn" }, - "methods": [ - { - "name": "getUsage", - "namespace": "databases", - "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 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": "databases\/get-usage.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getUsage" - } - } - ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -18332,69 +17865,107 @@ "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, "schema": { "type": "string", - "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": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New attribute key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } } }, - "\/documentsdb": { - "get": { - "summary": "List databases", - "operationId": "documentsDBList", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship": { + "post": { + "summary": "Create relationship attribute", + "operationId": "databasesCreateRelationshipAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Create relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", "responses": { - "200": { - "description": "Databases List", + "202": { + "description": "AttributeRelationship", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/databaseList" + "$ref": "#\/components\/schemas\/attributeRelationship" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "list", - "group": "documentsdb", - "weight": 855, + "method": "createRelationshipAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/list.md", + "demo": "databases\/create-relationship-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-relationship-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRelationshipColumn" + }, "auth": { "Project": [] } @@ -18407,88 +17978,24 @@ ], "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": "", - "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": "collectionId", + "description": "Collection ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "" }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create database", - "operationId": "documentsDBCreate", - "tags": [ - "documentsDB" - ], - "description": "Create a new Database.\n", - "responses": { - "201": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "create", - "group": "documentsdb", - "weight": 851, - "cookies": false, - "type": "", - "demo": "documentsdb\/create.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\/documentsdb\/create.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] + "in": "path" } ], "requestBody": { @@ -18497,25 +18004,57 @@ "schema": { "type": "object", "properties": { - "databaseId": { + "relatedCollectionId": { "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": "" + "description": "Related Collection ID.", + "x-example": "" }, - "name": { + "type": { "type": "string", - "description": "Database name. Max length: 128 chars.", - "x-example": "" + "description": "Relation type", + "x-example": "oneToOne", + "enum": [ + "oneToOne", + "manyToOne", + "manyToMany", + "oneToMany" + ], + "x-enum-name": "RelationshipType" }, - "enabled": { + "twoWay": { "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 Two Way?", + "default": false, "x-example": false + }, + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null, + "x-nullable": true + }, + "twoWayKey": { + "type": "string", + "description": "Two Way Attribute Key.", + "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" } }, "required": [ - "databaseId", - "name" + "relatedCollectionId", + "type" ] } } @@ -18523,47 +18062,48 @@ } } }, - "\/documentsdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "documentsDBListTransactions", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { + "patch": { + "summary": "Update relationship attribute", + "operationId": "databasesUpdateRelationshipAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "List transactions across all databases.", + "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", "responses": { "200": { - "description": "Transaction List", + "description": "AttributeRelationship", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transactionList" + "$ref": "#\/components\/schemas\/attributeRelationship" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 883, + "method": "updateRelationshipAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/list-transactions.md", + "demo": "databases\/update-relationship-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.write", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-transactions.md", + "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": [] } @@ -18571,67 +18111,112 @@ "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": "" }, - "in": "query" + "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" } - ] - }, + ], + "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" + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { "post": { - "summary": "Create transaction", - "operationId": "documentsDBCreateTransaction", + "summary": "Create string attribute", + "operationId": "databasesCreateStringAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Create a new transaction.", + "description": "Create a string attribute.\n", "responses": { - "201": { - "description": "Transaction", + "202": { + "description": "AttributeString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/attributeString" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 879, + "method": "createStringAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/create-transaction.md", + "demo": "databases\/create-string-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "collections.write", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-transaction.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": [] } @@ -18639,9 +18224,29 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "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": { @@ -18650,60 +18255,94 @@ "schema": { "type": "object", "properties": { - "ttl": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "size": { "type": "integer", - "description": "Seconds before the transaction expires.", - "x-example": 60, + "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?", + "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" + ] } } } } } }, - "\/documentsdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "documentsDBGetTransaction", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { + "patch": { + "summary": "Update string attribute", + "operationId": "databasesUpdateStringAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Get a transaction by its unique ID.", + "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Transaction", + "description": "AttributeString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/attributeString" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 880, + "method": "updateStringAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/get-transaction.md", + "demo": "databases\/update-string-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.write", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-transaction.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": [] } @@ -18711,38 +18350,96 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction 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 table 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" } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "documentsDBUpdateTransaction", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "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 + }, + "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.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + "post": { + "summary": "Create text attribute", + "operationId": "databasesCreateTextAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "description": "Create a text attribute.\n", "responses": { - "200": { - "description": "Transaction", + "202": { + "description": "AttributeText", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/attributeText" } } } @@ -18750,25 +18447,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 881, + "method": "createTextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/update-transaction.md", + "demo": "databases\/create-text-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "collections.write", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-text-attribute.md", "auth": { "Project": [] } @@ -18776,19 +18470,27 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction 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" } @@ -18799,55 +18501,83 @@ "schema": { "type": "object", "properties": { - "commit": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "required": { "type": "boolean", - "description": "Commit transaction?", + "description": "Is attribute required?", "x-example": false }, - "rollback": { + "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": "Rollback transaction?", + "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", + "required" + ] } } } } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "documentsDBDeleteTransaction", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { + "patch": { + "summary": "Update text attribute", + "operationId": "databasesUpdateTextAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Delete a transaction by its unique ID.", + "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "AttributeText", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/attributeText" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 882, + "method": "updateTextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/delete-transaction.md", + "demo": "databases\/update-text-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "collections.write", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-text-attribute.md", "auth": { "Project": [] } @@ -18855,160 +18585,116 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" - } - ] - } - }, - "\/documentsdb\/usage": { - "get": { - "summary": "Get DocumentsDB usage stats", - "operationId": "documentsDBListUsage", - "tags": [ - "documentsDB" - ], - "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": "UsageDatabases", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageDatabases" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listUsage", - "group": null, - "weight": 857, - "cookies": false, - "type": "", - "demo": "documentsdb\/list-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "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": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ + }, { - "name": "range", - "description": "Date range.", - "required": false, + "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": "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": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "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 + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } } }, - "\/documentsdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "documentsDBGet", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { + "post": { + "summary": "Create URL attribute", + "operationId": "databasesCreateUrlAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Create a URL attribute.\n", "responses": { - "200": { - "description": "Database", + "202": { + "description": "AttributeURL", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/attributeUrl" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "get", - "group": "documentsdb", - "weight": 852, + "method": "createUrlAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/get.md", + "demo": "databases\/create-url-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get.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": [] } @@ -19029,65 +18715,14 @@ "x-example": "" }, "in": "path" - } - ] - }, - "put": { - "summary": "Update database", - "operationId": "documentsDBUpdate", - "tags": [ - "documentsDB" - ], - "description": "Update a database by its unique ID.", - "responses": { - "200": { - "description": "Database", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/database" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "update", - "group": "documentsdb", - "weight": 853, - "cookies": false, - "type": "", - "demo": "documentsdb\/update.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\/documentsdb\/update.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + }, { - "name": "databaseId", - "description": "Database ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -19098,119 +18733,82 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Database name. Max length: 128 chars.", - "x-example": "" + "description": "Attribute Key.", + "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.", + "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": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, "x-example": false } }, "required": [ - "name" + "key", + "required" ] } } } } - }, - "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": "delete", - "group": "documentsdb", - "weight": 854, - "cookies": false, - "type": "", - "demo": "documentsdb\/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\/documentsdb\/delete.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] } }, - "\/documentsdb\/{databaseId}\/collections": { - "get": { - "summary": "List collections", - "operationId": "documentsDBListCollections", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { + "patch": { + "summary": "Update URL attribute", + "operationId": "databasesUpdateUrlAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Collections List", + "description": "AttributeURL", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/collectionList" + "$ref": "#\/components\/schemas\/attributeUrl" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listCollections", - "group": "collections", - "weight": 862, + "method": "updateUrlAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/list-collections.md", + "demo": "databases\/update-url-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\/documentsdb\/list-collections.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": [] } @@ -19233,56 +18831,75 @@ "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, + "name": "collectionId", + "description": "Collection 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": "key", + "description": "Attribute 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 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": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { "post": { - "summary": "Create collection", - "operationId": "documentsDBCreateCollection", + "summary": "Create varchar attribute", + "operationId": "databasesCreateVarcharAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "description": "Create a varchar attribute.\n", "responses": { - "201": { - "description": "Collection", + "202": { + "description": "AttributeVarchar", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/collection" + "$ref": "#\/components\/schemas\/attributeVarchar" } } } @@ -19290,12 +18907,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createCollection", - "group": "collections", - "weight": 858, + "method": "createVarcharAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/create-collection.md", + "demo": "databases\/create-varchar-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -19306,7 +18922,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-varchar-attribute.md", "auth": { "Project": [] } @@ -19327,6 +18943,16 @@ "x-example": "" }, "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ], "requestBody": { @@ -19335,55 +18961,45 @@ "schema": { "type": "object", "properties": { - "collectionId": { + "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": "" + "description": "Attribute Key.", + "x-example": null }, - "name": { - "type": "string", - "description": "Collection name. Max length: 128 chars.", - "x-example": "" + "size": { + "type": "integer", + "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", + "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" - }, + "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 }, - "documentSecurity": { + "array": { "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).", + "description": "Is attribute an array?", + "default": false, "x-example": false }, - "enabled": { + "encrypt": { "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.", + "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 - }, - "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" + "key", + "size", + "required" ] } } @@ -19391,21 +19007,21 @@ } } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { - "get": { - "summary": "Get collection", - "operationId": "documentsDBGetCollection", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "patch": { + "summary": "Update varchar attribute", + "operationId": "databasesUpdateVarcharAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Collection", + "description": "AttributeVarchar", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/collection" + "$ref": "#\/components\/schemas\/attributeVarchar" } } } @@ -19413,23 +19029,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCollection", - "group": "collections", - "weight": 859, + "method": "updateVarcharAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/get-collection.md", + "demo": "databases\/update-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\/documentsdb\/get-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-varchar-attribute.md", "auth": { "Project": [] } @@ -19453,54 +19068,189 @@ }, { "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" } - ] - }, - "put": { - "summary": "Update collection", - "operationId": "documentsDBUpdateCollection", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "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 + }, + "size": { + "type": "integer", + "description": "Maximum size of the varchar attribute.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { + "get": { + "summary": "Get attribute", + "operationId": "databasesGetAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Update a collection by its unique ID.", + "description": "Get attribute by ID.", "responses": { "200": { - "description": "Collection", + "description": "AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributeString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/collection" + "oneOf": [ + { + "$ref": "#\/components\/schemas\/attributeBoolean" + }, + { + "$ref": "#\/components\/schemas\/attributeInteger" + }, + { + "$ref": "#\/components\/schemas\/attributeFloat" + }, + { + "$ref": "#\/components\/schemas\/attributeEmail" + }, + { + "$ref": "#\/components\/schemas\/attributeEnum" + }, + { + "$ref": "#\/components\/schemas\/attributeUrl" + }, + { + "$ref": "#\/components\/schemas\/attributeIp" + }, + { + "$ref": "#\/components\/schemas\/attributeDatetime" + }, + { + "$ref": "#\/components\/schemas\/attributeRelationship" + }, + { + "$ref": "#\/components\/schemas\/attributeString" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "boolean": "#\/components\/schemas\/attributeBoolean", + "integer": "#\/components\/schemas\/attributeInteger", + "double": "#\/components\/schemas\/attributeFloat", + "string": "#\/components\/schemas\/attributeString", + "datetime": "#\/components\/schemas\/attributeDatetime", + "relationship": "#\/components\/schemas\/attributeRelationship" + }, + "x-propertyNames": [ + "type", + "format" + ], + "x-mapping": { + "#\/components\/schemas\/attributeBoolean": { + "type": "boolean" + }, + "#\/components\/schemas\/attributeInteger": { + "type": "integer" + }, + "#\/components\/schemas\/attributeFloat": { + "type": "double" + }, + "#\/components\/schemas\/attributeEmail": { + "type": "string", + "format": "email" + }, + "#\/components\/schemas\/attributeEnum": { + "type": "string", + "format": "enum" + }, + "#\/components\/schemas\/attributeUrl": { + "type": "string", + "format": "url" + }, + "#\/components\/schemas\/attributeIp": { + "type": "string", + "format": "ip" + }, + "#\/components\/schemas\/attributeDatetime": { + "type": "datetime" + }, + "#\/components\/schemas\/attributeRelationship": { + "type": "relationship" + }, + "#\/components\/schemas\/attributeString": { + "type": "string" + } + } + } } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateCollection", - "group": "collections", - "weight": 860, + "method": "getAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/update-collection.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\/documentsdb\/update-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getColumn" + }, "auth": { "Project": [] } @@ -19531,71 +19281,37 @@ "x-example": "" }, "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string" + }, + "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 - }, - "purge": { - "type": "boolean", - "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", - "x-example": false - } - }, - "required": [ - "name" - ] - } - } - } - } + ] }, "delete": { - "summary": "Delete collection", - "operationId": "documentsDBDeleteCollection", + "summary": "Delete attribute", + "operationId": "databasesDeleteAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Deletes an attribute.", "responses": { "204": { "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "deleteCollection", - "group": "collections", - "weight": 861, + "method": "deleteAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/delete-collection.md", + "demo": "databases\/delete-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -19606,7 +19322,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteColumn" + }, "auth": { "Project": [] } @@ -19637,16 +19357,25 @@ "x-example": "" }, "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ] } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { "summary": "List documents", - "operationId": "documentsDBListDocuments", + "operationId": "databasesListDocuments", "tags": [ - "documentsDB" + "databases" ], "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", "responses": { @@ -19661,14 +19390,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 919, "cookies": false, "type": "", - "demo": "documentsdb\/list-documents.md", + "demo": "databases\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -19681,7 +19409,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-documents.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listRows" + }, "auth": { "Project": [] } @@ -19751,7 +19483,7 @@ }, { "name": "ttl", - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", "required": false, "schema": { "type": "integer", @@ -19765,11 +19497,11 @@ }, "post": { "summary": "Create document", - "operationId": "documentsDBCreateDocument", + "operationId": "databasesCreateDocument", "tags": [ - "documentsDB" + "databases" ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { "201": { "description": "Document", @@ -19782,14 +19514,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 868, "cookies": false, "type": "", - "demo": "documentsdb\/create-document.md", + "demo": "databases\/create-document.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -19802,11 +19533,15 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-document.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + }, "methods": [ { "name": "createDocument", - "namespace": "documentsDB", + "namespace": "databases", "desc": "Create document", "auth": { "Project": [] @@ -19816,7 +19551,8 @@ "collectionId", "documentId", "data", - "permissions" + "permissions", + "transactionId" ], "required": [ "databaseId", @@ -19830,13 +19566,17 @@ "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 + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + } }, { "name": "createDocuments", - "namespace": "documentsDB", + "namespace": "databases", "desc": "Create documents", "auth": { "Project": [] @@ -19844,7 +19584,8 @@ "parameters": [ "databaseId", "collectionId", - "documents" + "documents", + "transactionId" ], "required": [ "databaseId", @@ -19857,9 +19598,13 @@ "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 + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-documents.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRows" + } } ], "auth": { @@ -19905,11 +19650,13 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", "x-example": "" }, "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": { @@ -19918,11 +19665,13 @@ "x-example": "[\"read(\"any\")\"]", "items": { "type": "string" - } + }, + "x-nullable": true }, "documents": { "type": "array", "description": "Array of documents data as JSON objects.", + "default": [], "x-example": null, "items": { "type": "object" @@ -19931,7 +19680,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "x-example": "" + "x-example": "", + "x-nullable": true } } } @@ -19941,11 +19691,11 @@ }, "put": { "summary": "Upsert documents", - "operationId": "documentsDBUpsertDocuments", + "operationId": "databasesUpsertDocuments", "tags": [ - "documentsDB" + "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#documentsDBCreateCollection) API or directly from your database console.\n", + "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", @@ -19958,14 +19708,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 873, "cookies": false, "type": "", - "demo": "documentsdb\/upsert-documents.md", + "demo": "databases\/upsert-documents.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -19976,11 +19725,15 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-documents.md", + "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": "documentsDB", + "namespace": "databases", "desc": "", "auth": { "Project": [] @@ -20002,9 +19755,13 @@ "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 + "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": { @@ -20056,7 +19813,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "x-example": "" + "x-example": "", + "x-nullable": true } }, "required": [ @@ -20069,9 +19827,9 @@ }, "patch": { "summary": "Update documents", - "operationId": "documentsDBUpdateDocuments", + "operationId": "databasesUpdateDocuments", "tags": [ - "documentsDB" + "databases" ], "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", "responses": { @@ -20086,14 +19844,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 871, "cookies": false, "type": "", - "demo": "documentsdb\/update-documents.md", + "demo": "databases\/update-documents.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20104,7 +19861,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-documents.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRows" + }, "auth": { "Project": [] } @@ -20146,11 +19907,13 @@ "data": { "type": "object", "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "x-example": "{}" + "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" @@ -20159,7 +19922,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "x-example": "" + "x-example": "", + "x-nullable": true } } } @@ -20169,9 +19933,9 @@ }, "delete": { "summary": "Delete documents", - "operationId": "documentsDBDeleteDocuments", + "operationId": "databasesDeleteDocuments", "tags": [ - "documentsDB" + "databases" ], "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", "responses": { @@ -20186,14 +19950,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 875, "cookies": false, "type": "", - "demo": "documentsdb\/delete-documents.md", + "demo": "databases\/delete-documents.md", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20204,7 +19967,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRows" + }, "auth": { "Project": [] } @@ -20246,6 +20013,7 @@ "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" @@ -20254,7 +20022,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "x-example": "" + "x-example": "", + "x-nullable": true } } } @@ -20263,12 +20032,12 @@ } } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { "get": { "summary": "Get document", - "operationId": "documentsDBGetDocument", + "operationId": "databasesGetDocument", "tags": [ - "documentsDB" + "databases" ], "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", "responses": { @@ -20283,14 +20052,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 869, "cookies": false, "type": "", - "demo": "documentsdb\/get-document.md", + "demo": "databases\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -20303,7 +20071,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-document.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getRow" + }, "auth": { "Project": [] } @@ -20374,11 +20146,11 @@ }, "put": { "summary": "Upsert a document", - "operationId": "documentsDBUpsertDocument", + "operationId": "databasesUpsertDocument", "tags": [ - "documentsDB" + "databases" ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { "201": { "description": "Document", @@ -20391,14 +20163,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 872, "cookies": false, "type": "", - "demo": "documentsdb\/upsert-document.md", + "demo": "databases\/upsert-document.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20411,11 +20182,15 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-document.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + }, "methods": [ { "name": "upsertDocument", - "namespace": "documentsDB", + "namespace": "databases", "desc": "", "auth": { "Project": [] @@ -20439,9 +20214,13 @@ "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 + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/upsert-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + } } ], "auth": { @@ -20496,8 +20275,9 @@ "properties": { "data": { "type": "object", - "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", - "x-example": "{}" + "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", + "default": {}, + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { "type": "array", @@ -20505,12 +20285,14 @@ "x-example": "[\"read(\"any\")\"]", "items": { "type": "string" - } + }, + "x-nullable": true }, "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "x-example": "" + "x-example": "", + "x-nullable": true } } } @@ -20520,9 +20302,9 @@ }, "patch": { "summary": "Update document", - "operationId": "documentsDBUpdateDocument", + "operationId": "databasesUpdateDocument", "tags": [ - "documentsDB" + "databases" ], "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { @@ -20537,14 +20319,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 870, "cookies": false, "type": "", - "demo": "documentsdb\/update-document.md", + "demo": "databases\/update-document.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20557,7 +20338,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-document.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRow" + }, "auth": { "Project": [] } @@ -20610,8 +20395,9 @@ "properties": { "data": { "type": "object", - "description": "Document data as JSON object. Include only fields and value pairs to be updated.", - "x-example": "{}" + "description": "Document data as JSON object. Include only attribute 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", @@ -20619,12 +20405,14 @@ "x-example": "[\"read(\"any\")\"]", "items": { "type": "string" - } + }, + "x-nullable": true }, "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "x-example": "" + "x-example": "", + "x-nullable": true } } } @@ -20634,9 +20422,9 @@ }, "delete": { "summary": "Delete document", - "operationId": "documentsDBDeleteDocument", + "operationId": "databasesDeleteDocument", "tags": [ - "documentsDB" + "databases" ], "description": "Delete a document by its unique ID.", "responses": { @@ -20644,14 +20432,13 @@ "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 874, "cookies": false, "type": "", - "demo": "documentsdb\/delete-document.md", + "demo": "databases\/delete-document.md", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20664,7 +20451,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-document.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRow" + }, "auth": { "Project": [] } @@ -20718,7 +20509,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "x-example": "" + "x-example": "", + "x-nullable": true } } } @@ -20727,14 +20519,111 @@ } } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/logs": { + "get": { + "summary": "List document logs", + "operationId": "databasesListDocumentLogs", + "tags": [ + "databases" + ], + "description": "Get the document activity logs list by its unique ID.", + "responses": { + "200": { + "description": "Logs List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/logList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "listDocumentLogs", + "group": "logs", + "cookies": false, + "type": "", + "demo": "databases\/list-document-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-document-logs.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listRowLogs" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "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" + }, + { + "name": "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" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { "patch": { "summary": "Decrement document attribute", - "operationId": "documentsDBDecrementDocumentAttribute", + "operationId": "databasesDecrementDocumentAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Decrement a specific column of a row by a given value.", + "description": "Decrement a specific attribute of a document by a given value.", "responses": { "200": { "description": "Document", @@ -20747,14 +20636,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 878, "cookies": false, "type": "", - "demo": "documentsdb\/decrement-document-attribute.md", + "demo": "databases\/decrement-document-attribute.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20767,7 +20655,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/decrement-document-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/decrement-document-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.decrementRowColumn" + }, "auth": { "Project": [] } @@ -20829,7 +20721,8 @@ "properties": { "value": { "type": "number", - "description": "Value to decrement the attribute by. The value must be a number.", + "description": "Value to increment the attribute by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -20837,12 +20730,14 @@ "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" + "format": "float", + "x-nullable": true }, "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "x-example": "" + "x-example": "", + "x-nullable": true } } } @@ -20851,14 +20746,14 @@ } } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { "patch": { "summary": "Increment document attribute", - "operationId": "documentsDBIncrementDocumentAttribute", + "operationId": "databasesIncrementDocumentAttribute", "tags": [ - "documentsDB" + "databases" ], - "description": "Increment a specific column of a row by a given value.", + "description": "Increment a specific attribute of a document by a given value.", "responses": { "200": { "description": "Document", @@ -20871,14 +20766,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 877, "cookies": false, "type": "", - "demo": "documentsdb\/increment-document-attribute.md", + "demo": "databases\/increment-document-attribute.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20891,7 +20785,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/increment-document-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/increment-document-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.incrementRowColumn" + }, "auth": { "Project": [] } @@ -20954,6 +20852,7 @@ "value": { "type": "number", "description": "Value to increment the attribute by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -20961,12 +20860,14 @@ "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" + "format": "float", + "x-nullable": true }, "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "x-example": "" + "x-example": "", + "x-nullable": true } } } @@ -20975,12 +20876,12 @@ } } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": { "get": { "summary": "List indexes", - "operationId": "documentsDBListIndexes", + "operationId": "databasesListIndexes", "tags": [ - "documentsDB" + "databases" ], "description": "List indexes in the collection.", "responses": { @@ -20995,14 +20896,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 867, "cookies": false, "type": "", - "demo": "documentsdb\/list-indexes.md", + "demo": "databases\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21013,7 +20913,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-indexes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-indexes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listIndexes" + }, "auth": { "Project": [] } @@ -21073,9 +20977,9 @@ }, "post": { "summary": "Create index", - "operationId": "documentsDBCreateIndex", + "operationId": "databasesCreateIndex", "tags": [ - "documentsDB" + "databases" ], "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", "responses": { @@ -21090,14 +20994,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 864, "cookies": false, "type": "", - "demo": "documentsdb\/create-index.md", + "demo": "databases\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21108,7 +21011,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-index.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIndex" + }, "auth": { "Project": [] } @@ -21159,10 +21066,10 @@ "enum": [ "key", "fulltext", - "unique" + "unique", + "spatial" ], - "x-enum-name": "DocumentsDBIndexType", - "x-enum-keys": [] + "x-enum-name": "DatabasesIndexType" }, "attributes": { "type": "array", @@ -21175,6 +21082,7 @@ "orders": { "type": "array", "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], "x-example": null, "items": { "type": "string", @@ -21182,13 +21090,13 @@ "asc", "desc" ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] + "x-enum-name": "OrderBy" } }, "lengths": { "type": "array", "description": "Length of index. Maximum of 100", + "default": [], "x-example": null, "items": { "type": "integer" @@ -21206,14 +21114,14 @@ } } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { "get": { "summary": "Get index", - "operationId": "documentsDBGetIndex", + "operationId": "databasesGetIndex", "tags": [ - "documentsDB" + "databases" ], - "description": "Get index by ID.", + "description": "Get an index by its unique ID.", "responses": { "200": { "description": "Index", @@ -21226,14 +21134,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 865, "cookies": false, "type": "", - "demo": "documentsdb\/get-index.md", + "demo": "databases\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21244,7 +21151,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-index.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getIndex" + }, "auth": { "Project": [] } @@ -21289,9 +21200,9 @@ }, "delete": { "summary": "Delete index", - "operationId": "documentsDBDeleteIndex", + "operationId": "databasesDeleteIndex", "tags": [ - "documentsDB" + "databases" ], "description": "Delete an index.", "responses": { @@ -21299,14 +21210,13 @@ "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 866, "cookies": false, "type": "", - "demo": "documentsdb\/delete-index.md", + "demo": "databases\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21317,7 +21227,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-index.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteIndex" + }, "auth": { "Project": [] } @@ -21361,12 +21275,99 @@ ] } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/usage": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/logs": { + "get": { + "summary": "List collection logs", + "operationId": "databasesListCollectionLogs", + "tags": [ + "databases" + ], + "description": "Get the collection activity logs list by its unique ID.", + "responses": { + "200": { + "description": "Logs List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/logList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "listCollectionLogs", + "group": "collections", + "cookies": false, + "type": "", + "demo": "databases\/list-collection-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection-logs.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTableLogs" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "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": "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" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/usage": { "get": { "summary": "Get collection usage stats", - "operationId": "documentsDBGetCollectionUsage", + "operationId": "databasesGetCollectionUsage", "tags": [ - "documentsDB" + "databases" ], "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": { @@ -21381,14 +21382,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "getCollectionUsage", "group": null, - "weight": 863, "cookies": false, "type": "", - "demo": "documentsdb\/get-collection-usage.md", + "demo": "databases\/get-collection-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21398,7 +21398,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-collection-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection-usage.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTableUsage" + }, "auth": { "Project": [] } @@ -21454,34 +21458,140 @@ ] } }, - "\/documentsdb\/{databaseId}\/usage": { + "\/databases\/{databaseId}\/logs": { "get": { - "summary": "Get DocumentsDB usage stats", - "operationId": "documentsDBGetUsage", + "summary": "List database logs", + "operationId": "databasesListLogs", "tags": [ - "documentsDB" + "databases" + ], + "description": "Get the database activity logs list by its unique ID.", + "responses": { + "200": { + "description": "Logs List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/logList" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "listLogs", + "group": "logs", + "cookies": false, + "type": "", + "demo": "databases\/list-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-logs.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listDatabaseLogs" + }, + "methods": [ + { + "name": "listLogs", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "queries" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/logList" + } + ], + "description": "Get the database activity logs list by its unique ID.", + "demo": "databases\/list-logs.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listDatabaseLogs" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database 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" + } + ] + } + }, + "\/databases\/{databaseId}\/usage": { + "get": { + "summary": "Get database usage stats", + "operationId": "databasesGetUsage", + "tags": [ + "databases" ], "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": { "200": { - "description": "UsageDocumentsDB", + "description": "UsageDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageDocumentsDB" + "$ref": "#\/components\/schemas\/usageDatabase" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "getUsage", "group": null, - "weight": 856, "cookies": false, "type": "", - "demo": "documentsdb\/get-usage.md", + "demo": "databases\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21491,11 +21601,15 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-database-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-database-usage.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getUsage" + }, "methods": [ { "name": "getUsage", - "namespace": "documentsDB", + "namespace": "databases", "desc": "", "auth": { "Project": [] @@ -21510,12 +21624,16 @@ "responses": [ { "code": 200, - "model": "#\/components\/schemas\/usageDocumentsDB" + "model": "#\/components\/schemas\/usageDatabase" } ], "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 + "demo": "databases\/get-usage.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getUsage" + } } ], "auth": { @@ -21563,21 +21681,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" } } } @@ -21586,33 +21704,35 @@ "deprecated": false, "x-appwrite": { "method": "list", - "group": null, - "weight": 943, + "group": "documentsdb", "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", @@ -21624,32 +21744,32 @@ "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, "schema": { - "type": "string", - "x-example": "", - "default": "" + "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" } } } @@ -21658,27 +21778,29 @@ "deprecated": false, "x-appwrite": { "method": "create", - "group": null, - "weight": 938, + "group": "documentsdb", "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": { @@ -21687,20 +21809,26 @@ "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.", + "default": true, + "x-example": false } }, "required": [ - "teamId", - "domain" + "databaseId", + "name" ] } } @@ -21708,21 +21836,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": "List transactions across all databases.", "responses": { "200": { - "description": "DomainPrice", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domainPrice" + "$ref": "#\/components\/schemas\/transactionList" } } } @@ -21730,88 +21858,66 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPrice", - "group": null, - "weight": 941, + "method": "listTransactions", + "group": "transactions", "cookies": false, "type": "", - "demo": "domains\/get-price.md", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-transactions.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "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": " Initiate a domain purchase by providing registrant details and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Purchase endpoint to capture the payment and finalize the purchase.", + "description": "Create a new transaction.", "responses": { "201": { - "description": "DomainPurchase", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domainPurchase" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -21819,28 +21925,34 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPurchase", - "group": null, - "weight": 988, + "method": "createTransaction", + "group": "transactions", "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": "billing.write", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "JWT": [] } ], "requestBody": { @@ -21849,101 +21961,35 @@ "schema": { "type": "object", "properties": { - "domain": { - "type": "string", - "description": "Fully qualified domain name to purchase (for example, example.com).", - "x-example": null - }, - "organizationId": { - "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.", + "default": 300, + "x-example": 60, "format": "int32" - }, - "autoRenewal": { - "type": "boolean", - "description": "Whether the domain should renew automatically after purchase.", - "x-example": false - }, - "paymentMethodId": { - "type": "string", - "description": "Payment method ID to authorize and capture the purchase.", - "x-example": "" } - }, - "required": [ - "domain", - "organizationId", - "firstName", - "lastName", - "email", - "phone", - "billingAddressId", - "paymentMethodId" - ] + } } } } } } }, - "\/domains\/purchases\/{invoiceId}": { - "patch": { - "summary": "Confirm a domain purchase", - "operationId": "domainsUpdatePurchase", + "\/documentsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", "tags": [ - "domains" + "documentsDB" ], - "description": " Finalize a domain purchase initiated with Create Purchase. Verifies that any required 3D Secure authentication is complete, registers the domain, captures the payment, and provisions default DNS records. Returns a 402 error if authentication is still pending.", + "description": "Get a transaction by its unique ID.", "responses": { "200": { - "description": "DomainPurchase", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domainPurchase" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -21951,78 +21997,63 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePurchase", - "group": null, - "weight": 989, + "method": "getTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "domains\/update-purchase.md", + "demo": "documentsdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "documents.read", "platforms": [ - "console" + "console", + "server", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "invoiceId", - "description": "Invoice 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": { - "organizationId": { - "type": "string", - "description": "Team ID that owns the domain.", - "x-example": "" - } - }, - "required": [ - "organizationId" - ] - } - } - } - } - } - }, - "\/domains\/suggestions": { - "get": { - "summary": "List domain suggestions", - "operationId": "domainsListSuggestions", + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", "tags": [ - "domains" + "documentsDB" ], - "description": " List domain suggestions.", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { "200": { - "description": "Domain suggestions list", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domainSuggestionsList" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -22030,147 +22061,46 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSuggestions", - "group": null, - "weight": 987, + "method": "updateTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "domains\/list-suggestions.md", - "rate-limit": 50, + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "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" - } - ] - } - }, - "\/domains\/transfers\/in": { - "post": { - "summary": "Create a domain transfer in.", - "operationId": "domainsCreateTransferIn", - "tags": [ - "domains" - ], - "description": " Initiate a domain transfer-in by providing an authorization code, registrant details, and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Transfer In endpoint to capture the payment and submit the transfer.", - "responses": { - "201": { - "description": "DomainPurchase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainPurchase" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createTransferIn", - "group": null, - "weight": 948, - "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": [] + "in": "path" } ], "requestBody": { @@ -22179,138 +22109,97 @@ "schema": { "type": "object", "properties": { - "domain": { - "type": "string", - "description": "Domain name to transfer in.", - "x-example": null - }, - "organizationId": { - "type": "string", - "description": "Organization ID that this domain will belong to.", - "x-example": "" - }, - "authCode": { - "type": "string", - "description": "Authorization code for the domain transfer.", - "x-example": "" - }, - "autoRenewal": { + "commit": { "type": "boolean", - "description": "Whether the domain should renew automatically after transfer.", + "description": "Commit transaction?", + "default": false, "x-example": false }, - "paymentMethodId": { - "type": "string", - "description": "Payment method ID to authorize and capture the transfer.", - "x-example": "" + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false } - }, - "required": [ - "domain", - "organizationId", - "authCode", - "paymentMethodId" - ] + } } } } } - } - }, - "\/domains\/transfers\/in\/{invoiceId}": { - "patch": { - "summary": "Confirm a domain transfer in", - "operationId": "domainsUpdateTransferIn", + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", "tags": [ - "domains" + "documentsDB" ], - "description": " Finalize a domain transfer-in initiated with Create Transfer In. Verifies that any required 3D Secure authentication is complete, submits the transfer with the authorization code, captures the payment, and sends a confirmation email. Returns a 402 error if authentication is still pending.", + "description": "Delete a transaction by its unique ID.", "responses": { - "200": { - "description": "DomainPurchase", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domainPurchase" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateTransferIn", - "group": null, - "weight": 949, + "method": "deleteTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "domains\/update-transfer-in.md", + "demo": "documentsdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "invoiceId", - "description": "Invoice 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": { - "organizationId": { - "type": "string", - "description": "Team ID that owns the domain.", - "x-example": "" - } - }, - "required": [ - "organizationId" - ] - } - } - } - } + ] } }, - "\/domains\/transfers\/out": { - "post": { - "summary": "Create a domain transfer out.", - "operationId": "domainsCreateTransferOut", + "\/documentsdb\/usage": { + "get": { + "summary": "Get DocumentsDB usage stats", + "operationId": "documentsDBListUsage", "tags": [ - "domains" + "documentsDB" ], - "description": " Initiate a domain transfer-out by generating an authorization code for the specified domain. The returned `authCode` should be provided to the gaining provider to complete the transfer. If the domain has auto-renewal enabled, it will be automatically disabled as part of this operation.", + "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": { - "202": { - "description": "domainTransferOut", + "200": { + "description": "UsageDatabases", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domainTransferOut" + "$ref": "#\/components\/schemas\/usageDatabases" } } } @@ -22318,21 +22207,44 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTransferOut", + "method": "listUsage", "group": null, - "weight": 950, "cookies": false, "type": "", - "demo": "domains\/create-transfer-out.md", + "demo": "documentsdb\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.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": [] } @@ -22342,48 +22254,47 @@ "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domainId": { - "type": "string", - "description": "Domain unique ID.", - "x-example": "" - }, - "organizationId": { - "type": "string", - "description": "Organization ID that this domain belongs to.", - "x-example": "" - } - }, - "required": [ - "domainId", - "organizationId" - ] - } - } + "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" } - } + ] } }, - "\/domains\/{domainId}": { + "\/documentsdb\/{databaseId}": { "get": { - "summary": "Get a single domain by its unique ID.", - "operationId": "domainsGet", + "summary": "Get database", + "operationId": "documentsDBGet", "tags": [ - "domains" + "documentsDB" ], - "description": " Get a domain 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": "Domain", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domain" + "$ref": "#\/components\/schemas\/database" } } } @@ -22392,148 +22303,99 @@ "deprecated": false, "x-appwrite": { "method": "get", - "group": null, - "weight": 940, + "group": "documentsdb", "cookies": false, "type": "", - "demo": "domains\/get.md", + "demo": "documentsdb\/get.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\/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" } ] }, - "delete": { - "summary": "Delete a domain by its unique ID.", - "operationId": "domainsDelete", + "put": { + "summary": "Update database", + "operationId": "documentsDBUpdate", "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": "Update a database by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": null, - "weight": 939, + "method": "update", + "group": "documentsdb", "cookies": false, "type": "", - "demo": "domains\/delete.md", + "demo": "documentsdb\/update.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}\/auto-renewal": { - "patch": { - "summary": "Update domain auto-renewal setting.", - "operationId": "domainsUpdateAutoRenewal", - "tags": [ - "domains" - ], - "description": " Enable or disable auto-renewal for a domain.", - "responses": { - "200": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateAutoRenewal", - "group": null, - "weight": 944, - "cookies": false, - "type": "", - "demo": "domains\/update-auto-renewal.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" } @@ -22544,96 +22406,95 @@ "schema": { "type": "object", "properties": { - "autoRenewal": { + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "x-example": "" + }, + "enabled": { "type": "boolean", - "description": "Whether the domain should renew automatically.", + "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": [ - "autoRenewal" + "name" ] } } } } - } - }, - "\/domains\/{domainId}\/nameservers": { - "patch": { - "summary": "Verify which NS records are used and update the domain accordingly.", - "operationId": "domainsUpdateNameservers", + }, + "delete": { + "summary": "Delete database", + "operationId": "documentsDBDelete", "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": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "responses": { - "200": { - "description": "Domain", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/domain" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateNameservers", - "group": null, - "weight": 945, + "method": "delete", + "group": "documentsdb", "cookies": false, "type": "", - "demo": "domains\/update-nameservers.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" } ] } }, - "\/domains\/{domainId}\/presets\/google-workspace": { + "\/documentsdb\/{databaseId}\/collections": { "get": { - "summary": "Get Google Workspace preset (Records)", - "operationId": "domainsGetPresetGoogleWorkspace", + "summary": "List collections", + "operationId": "documentsDBListCollections", "tags": [ - "domains" + "documentsDB" ], - "description": " List Google Workspace 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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/collectionList" } } } @@ -22641,57 +22502,94 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPresetGoogleWorkspace", - "group": null, - "weight": 976, + "method": "listCollections", + "group": "collections", "cookies": false, "type": "", - "demo": "domains\/get-preset-google-workspace.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" } ] }, "post": { - "summary": "Create Google Workspace preset (Records)", - "operationId": "domainsCreatePresetGoogleWorkspace", + "summary": "Create collection", + "operationId": "documentsDBCreateCollection", "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": "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" } } } @@ -22699,59 +22597,125 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPresetGoogleWorkspace", - "group": null, - "weight": 975, + "method": "createCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "domains\/create-preset-google-workspace.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" } - ] + ], + "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).", + "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\/icloud": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { "get": { - "summary": "Get iCloud preset (Records)", - "operationId": "domainsGetPresetICloud", + "summary": "Get collection", + "operationId": "documentsDBGetCollection", "tags": [ - "domains" + "documentsDB" ], - "description": " List iCloud 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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/collection" } } } @@ -22759,57 +22723,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPresetICloud", - "group": null, - "weight": 986, + "method": "getCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "domains\/get-preset-i-cloud.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" } ] }, - "post": { - "summary": "Create iCloud preset (Records)", - "operationId": "domainsCreatePresetICloud", + "put": { + "summary": "Update collection", + "operationId": "documentsDBUpdateCollection", "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": "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" } } } @@ -22817,117 +22793,179 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPresetICloud", - "group": null, - "weight": 985, + "method": "updateCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "domains\/create-preset-i-cloud.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" } - ] - } - }, - "\/domains\/{domainId}\/presets\/mailgun": { - "get": { - "summary": "Get Mailgun preset (Records)", - "operationId": "domainsGetPresetMailgun", - "tags": [ - "domains" ], - "description": " List Mailgun DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } + "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).", + "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 + }, + "purge": { + "type": "boolean", + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "default": false, + "x-example": false + } + }, + "required": [ + "name" + ] } } } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "documentsDBDeleteCollection", + "tags": [ + "documentsDB" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "getPresetMailgun", - "group": null, - "weight": 978, + "method": "deleteCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "domains\/get-preset-mailgun.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" } ] - }, - "post": { - "summary": "Create Mailgun preset (Records)", - "operationId": "domainsCreatePresetMailgun", + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "documentsDBListDocuments", "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 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" } } } @@ -22935,59 +22973,119 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPresetMailgun", - "group": null, - "weight": 977, + "method": "listDocuments", + "group": "documents", "cookies": false, "type": "", - "demo": "domains\/create-preset-mailgun.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": [], + "Session": [], + "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" } ] - } - }, - "\/domains\/{domainId}\/presets\/outlook": { - "get": { - "summary": "Get Outlook preset (Records)", - "operationId": "domainsGetPresetOutlook", + }, + "post": { + "summary": "Create document", + "operationId": "documentsDBCreateDocument", "tags": [ - "domains" + "documentsDB" ], - "description": " List Outlook 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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/document" } } } @@ -22995,57 +23093,177 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPresetOutlook", - "group": null, - "weight": 984, + "method": "createDocument", + "group": "documents", "cookies": false, "type": "", - "demo": "domains\/get-preset-outlook.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": [], + "Session": [], + "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" } - ] + ], + "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.", + "default": "", + "x-example": "" + }, + "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).", + "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.", + "x-example": "" + } + } + } + } + } + } }, - "post": { - "summary": "Create Outlook preset (Records)", - "operationId": "domainsCreatePresetOutlook", + "put": { + "summary": "Upsert documents", + "operationId": "documentsDBUpsertDocuments", "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": "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" } } } @@ -23053,59 +23271,126 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPresetOutlook", - "group": null, - "weight": 983, + "method": "upsertDocuments", + "group": "documents", "cookies": false, "type": "", - "demo": "domains\/create-preset-outlook.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" } - ] - } - }, - "\/domains\/{domainId}\/presets\/proton-mail": { - "get": { - "summary": "Get ProtonMail preset (Records)", - "operationId": "domainsGetPresetProtonMail", + ], + "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" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "documentsDBUpdateDocuments", "tags": [ - "domains" + "documentsDB" ], - "description": " List ProtonMail 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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -23113,57 +23398,100 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPresetProtonMail", - "group": null, - "weight": 982, + "method": "updateDocuments", + "group": "documents", "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\/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" } - ] + ], + "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.", + "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.", + "x-example": "" + } + } + } + } + } + } }, - "post": { - "summary": "Create ProtonMail preset (Records)", - "operationId": "domainsCreatePresetProtonMail", + "delete": { + "summary": "Delete documents", + "operationId": "documentsDBDeleteDocuments", "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": "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -23171,59 +23499,96 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPresetProtonMail", - "group": null, - "weight": 981, + "method": "deleteDocuments", + "group": "documents", "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\/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, "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" } - ] + ], + "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.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" + } + } + } + } + } + } } }, - "\/domains\/{domainId}\/presets\/zoho": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { "get": { - "summary": "Get Zoho preset (Records)", - "operationId": "domainsGetPresetZoho", - "tags": [ - "domains" + "summary": "Get document", + "operationId": "documentsDBGetDocument", + "tags": [ + "documentsDB" ], - "description": " List Zoho DNS records.", + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/document" } } } @@ -23231,57 +23596,106 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPresetZoho", - "group": null, - "weight": 980, + "method": "getDocument", + "group": "documents", "cookies": false, "type": "", - "demo": "domains\/get-preset-zoho.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": [], + "Session": [], + "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" } ] }, - "post": { - "summary": "Create Zoho Mail preset (Records)", - "operationId": "domainsCreatePresetZoho", + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", "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": "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": "DNS records list", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/document" } } } @@ -23289,59 +23703,145 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPresetZoho", - "group": null, - "weight": 979, + "method": "upsertDocument", + "group": "documents", "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\/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": [], + "Session": [], + "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" } - ] - } - }, - "\/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 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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", "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": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { "200": { - "description": "DNS records list", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/document" } } } @@ -23349,111 +23849,64 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRecords", - "group": null, - "weight": 974, + "method": "updateDocument", + "group": "documents", "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\/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": [], + "Session": [], + "Key": [], + "JWT": [] } ], "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.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/records\/a": { - "post": { - "summary": "Create a new A record for the given domain.", - "operationId": "domainsCreateRecordA", - "tags": [ - "domains" - ], - "description": "Create a new A record for the given domain. A records are used to point a domain name \nto an IPv4 address. The record value should be a valid IPv4 address.", - "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createRecordA", - "group": null, - "weight": 952, - "cookies": false, - "type": "", - "demo": "domains\/create-record-a.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ + }, { - "name": "domainId", - "description": "Domain unique ID.", + "name": "documentId", + "description": "Document ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -23464,103 +23917,103 @@ "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 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.", - "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\/a\/{recordId}": { - "put": { - "summary": "Update an existing A record for the given domain.", - "operationId": "domainsUpdateRecordA", + }, + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", "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": "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": "updateRecordA", - "group": null, - "weight": 953, + "method": "deleteDocument", + "group": "documents", "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\/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": [], + "Session": [], + "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" } @@ -23571,54 +24024,33 @@ "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": { + "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", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", "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": "Decrement 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" } } } @@ -23626,38 +24058,73 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordAAAA", - "group": null, - "weight": 954, + "method": "decrementDocumentAttribute", + "group": "documents", "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\/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": [], + "Session": [], + "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" } @@ -23668,54 +24135,46 @@ "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 + "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.", - "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 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", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", "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": "Increment 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" } } } @@ -23723,145 +24182,73 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordAAAA", - "group": null, - "weight": 955, + "method": "incrementDocumentAttribute", + "group": "documents", "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\/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": [], + "Session": [], + "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" - } - ], - "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 for this record.", - "x-example": "" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/alias": { - "post": { - "summary": "Create a new ALIAS record for the given domain.", - "operationId": "domainsCreateRecordAlias", - "tags": [ - "domains" - ], - "description": " Create a new ALIAS record for the given domain. This record type can be used to point your domain \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": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createRecordAlias", - "group": null, - "weight": 956, - "cookies": false, - "type": "", - "demo": "domains\/create-record-alias.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ + }, { - "name": "domainId", - "description": "Domain unique ID.", + "name": "documentId", + "description": "Document ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } @@ -23872,54 +24259,46 @@ "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 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.", - "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\/alias\/{recordId}": { - "put": { - "summary": "Update an existing ALIAS record for the given domain.", - "operationId": "domainsUpdateRecordAlias", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "documentsDBListIndexes", "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": "List indexes in the collection.", "responses": { "200": { - "description": "DNSRecord", + "description": "Indexes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/indexList" } } } @@ -23927,106 +24306,93 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordAlias", - "group": null, - "weight": 957, + "method": "listIndexes", + "group": "indexes", "cookies": false, "type": "", - "demo": "domains\/update-record-alias.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": "" - }, - "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\/caa": { + ] + }, "post": { - "summary": "Create a new CAA record for the given domain.", - "operationId": "domainsCreateRecordCAA", + "summary": "Create index", + "operationId": "documentsDBCreateIndex", "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": "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" } } } @@ -24034,38 +24400,50 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordCAA", - "group": null, - "weight": 958, + "method": "createIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "domains\/create-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, "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" } @@ -24076,32 +24454,58 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Record name.", + "description": "Index Key.", "x-example": null }, - "value": { + "type": { "type": "string", - "description": "CAA value (e.g. issuer domain).", - "x-example": null + "description": "Index type.", + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique" + ], + "x-enum-name": "DocumentsDBIndexType" }, - "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.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy" + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], + "x-example": null, + "items": { + "type": "integer" + } } }, "required": [ - "name", - "value", - "ttl" + "key", + "type", + "attributes" ] } } @@ -24109,21 +24513,21 @@ } } }, - "\/domains\/{domainId}\/records\/caa\/{recordId}": { - "put": { - "summary": "Update an existing CAA record for the given domain.", - "operationId": "domainsUpdateRecordCAA", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "documentsDBGetIndex", "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": "Get index by ID.", "responses": { "200": { - "description": "DNSRecord", + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/index" } } } @@ -24131,203 +24535,152 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordCAA", - "group": null, - "weight": 959, + "method": "getIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "domains\/update-record-caa.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" } - ], - "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", + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "documentsDBDeleteIndex", "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": "Delete an index.", "responses": { - "201": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createRecordCNAME", - "group": null, - "weight": 960, + "method": "deleteIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "domains\/create-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, "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": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } - ], - "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\/cname\/{recordId}": { - "put": { - "summary": "Update an existing CNAME record for the given domain.", - "operationId": "domainsUpdateRecordCNAME", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/usage": { + "get": { + "summary": "Get collection usage stats", + "operationId": "documentsDBGetCollectionUsage", "tags": [ - "domains" + "documentsDB" ], - "description": " Update an existing CNAME record for the given domain.", + "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" } } } @@ -24335,21 +24688,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordCNAME", + "method": "getCollectionUsage", "group": null, - "weight": 961, "cookies": false, "type": "", - "demo": "domains\/update-record-cname.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": [] } @@ -24361,80 +24714,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": "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", + "\/documentsdb\/{databaseId}\/usage": { + "get": { + "summary": "Get DocumentsDB usage stats", + "operationId": "documentsDBGetUsage", "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 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" } } } @@ -24442,21 +24780,47 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordHTTPS", + "method": "getUsage", "group": null, - "weight": 962, "cookies": false, "type": "", - "demo": "domains\/create-record-https.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": [] } @@ -24468,70 +24832,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": "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", + "\/domains": { + "get": { + "summary": "List domains", + "operationId": "domainsList", "tags": [ "domains" ], - "description": "Update an existing HTTPS record for the given domain. This endpoint allows you to modify \nthe properties of an HTTPS record associated with your domain, including the name (subdomain), \ntarget value, TTL, and optional comment.", + "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" } } } @@ -24539,16 +24888,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordHTTPS", + "method": "list", "group": null, - "weight": 963, "cookies": false, "type": "", - "demo": "domains\/update-record-https.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" ], @@ -24565,80 +24913,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": "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" - ] - } - } + "in": "query" } - } - } - }, - "\/domains\/{domainId}\/records\/mx": { + ] + }, "post": { - "summary": "Create a new MX record for the given domain.", - "operationId": "domainsCreateRecordMX", + "summary": "Create a new domain.", + "operationId": "domainsCreate", "tags": [ "domains" ], - "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": "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" } } } @@ -24646,12 +24959,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordMX", + "method": "create", "group": null, - "weight": 964, "cookies": false, "type": "", - "demo": "domains\/create-record-mx.md", + "demo": "domains\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -24670,57 +24982,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": "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" + "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", - "priority" + "teamId", + "domain" ] } } @@ -24728,21 +25009,21 @@ } } }, - "\/domains\/{domainId}\/records\/mx\/{recordId}": { - "put": { - "summary": "Update an existing MX record for the given domain.", - "operationId": "domainsUpdateRecordMX", + "\/domains\/price": { + "get": { + "summary": "Get domain price", + "operationId": "domainsGetPrice", "tags": [ "domains" ], - "description": " Update an existing MX record for the given domain.", + "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" } } } @@ -24750,16 +25031,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordMX", + "method": "getPrice", "group": null, - "weight": 965, "cookies": false, "type": "", - "demo": "domains\/update-record-mx.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" ], @@ -24776,24 +25056,89 @@ ], "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": "DomainRegistrationType", + "default": "new" }, - "in": "path" + "in": "query" + } + ] + } + }, + "\/domains\/purchases": { + "post": { + "summary": "Create a domain purchase", + "operationId": "domainsCreatePurchase", + "tags": [ + "domains" + ], + "description": "Initiate a domain purchase by providing registrant details and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Purchase endpoint to capture the payment and finalize the purchase.", + "responses": { + "201": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createPurchase", + "group": null, + "cookies": false, + "type": "", + "demo": "domains\/create-purchase.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] } ], "requestBody": { @@ -24802,39 +25147,83 @@ "schema": { "type": "object", "properties": { - "name": { + "domain": { "type": "string", - "description": "Record name (subdomain).", - "x-example": "" + "description": "Fully qualified domain name to purchase (for example, example.com).", + "x-example": null }, - "value": { + "organizationId": { "type": "string", - "description": "Mail server domain for this MX record.", - "x-example": "" + "description": "Team ID that will own the domain.", + "x-example": "" }, - "ttl": { + "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).", + "default": "", + "x-example": "" + }, + "companyName": { + "type": "string", + "description": "Company or organization name for the registrant.", + "default": "", + "x-example": "" + }, + "periodYears": { "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", + "description": "Registration term in years (1-10).", + "default": 1, "x-example": 1, "format": "int32" }, - "priority": { - "type": "integer", - "description": "MX priority.", - "x-example": null, - "format": "int32" + "autoRenewal": { + "type": "boolean", + "description": "Whether the domain should renew automatically after purchase.", + "default": true, + "x-example": false }, - "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" + "domain", + "organizationId", + "firstName", + "lastName", + "email", + "phone", + "billingAddressId", + "paymentMethodId" ] } } @@ -24842,21 +25231,21 @@ } } }, - "\/domains\/{domainId}\/records\/ns": { - "post": { - "summary": "Create a new NS record for the given domain.", - "operationId": "domainsCreateRecordNS", + "\/domains\/purchases\/{invoiceId}": { + "patch": { + "summary": "Confirm a domain purchase", + "operationId": "domainsUpdatePurchase", "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": "Finalize a domain purchase initiated with Create Purchase. Verifies that any required 3D Secure authentication is complete, registers the domain, captures the payment, and provisions default DNS records. Returns a 402 error if authentication is still pending.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "DomainPurchase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domainPurchase" } } } @@ -24864,16 +25253,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordNS", + "method": "updatePurchase", "group": null, - "weight": 966, "cookies": false, "type": "", - "demo": "domains\/create-record-ns.md", + "demo": "domains\/update-purchase.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "billing.write", "platforms": [ "console" ], @@ -24890,12 +25278,12 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "invoiceId", + "description": "Invoice ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -24906,32 +25294,14 @@ "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": { + "organizationId": { "type": "string", - "description": "A comment for this record.", - "x-example": "" + "description": "Team ID that owns the domain.", + "x-example": "" } }, "required": [ - "name", - "value", - "ttl" + "organizationId" ] } } @@ -24939,21 +25309,21 @@ } } }, - "\/domains\/{domainId}\/records\/ns\/{recordId}": { - "put": { - "summary": "Update an existing NS record for the given domain.", - "operationId": "domainsUpdateRecordNS", + "\/domains\/suggestions": { + "get": { + "summary": "List domain suggestions", + "operationId": "domainsListSuggestions", "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": "List domain suggestions.", "responses": { "200": { - "description": "DNSRecord", + "description": "Domain suggestions list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domainSuggestionsList" } } } @@ -24961,16 +25331,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordNS", + "method": "listSuggestions", "group": null, - "weight": 967, "cookies": false, "type": "", - "demo": "domains\/update-record-ns.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" ], @@ -24987,24 +25356,119 @@ ], "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": "DomainSuggestionType" }, - "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": "Initiate a domain transfer-in by providing an authorization code, registrant details, and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Transfer In endpoint to capture the payment and submit the transfer.", + "responses": { + "201": { + "description": "DomainPurchase", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domainPurchase" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTransferIn", + "group": null, + "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": { @@ -25013,32 +25477,38 @@ "schema": { "type": "object", "properties": { - "name": { + "domain": { "type": "string", - "description": "Record name (subdomain).", - "x-example": "" + "description": "Domain name to transfer in.", + "x-example": null }, - "value": { + "organizationId": { "type": "string", - "description": "Nameserver target for this NS record.", - "x-example": "" + "description": "Organization ID that this domain will belong to.", + "x-example": "" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" + "authCode": { + "type": "string", + "description": "Authorization code for the domain transfer.", + "x-example": "" }, - "comment": { + "autoRenewal": { + "type": "boolean", + "description": "Whether the domain should renew automatically after transfer.", + "default": true, + "x-example": false + }, + "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" + "domain", + "organizationId", + "authCode", + "paymentMethodId" ] } } @@ -25046,21 +25516,21 @@ } } }, - "\/domains\/{domainId}\/records\/srv": { - "post": { - "summary": "Create a new SRV record for the given domain.", - "operationId": "domainsCreateRecordSRV", + "\/domains\/transfers\/in\/{invoiceId}": { + "patch": { + "summary": "Confirm a domain transfer in", + "operationId": "domainsUpdateTransferIn", "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": "Finalize a domain transfer-in initiated with Create Transfer In. Verifies that any required 3D Secure authentication is complete, submits the transfer with the authorization code, captures the payment, and sends a confirmation email. Returns a 402 error if authentication is still pending.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "DomainPurchase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domainPurchase" } } } @@ -25068,16 +25538,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordSRV", + "method": "updateTransferIn", "group": null, - "weight": 968, "cookies": false, "type": "", - "demo": "domains\/create-record-srv.md", + "demo": "domains\/update-transfer-in.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "billing.write", "platforms": [ "console" ], @@ -25094,12 +25563,12 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "invoiceId", + "description": "Invoice ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -25110,53 +25579,14 @@ "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": { + "organizationId": { "type": "string", - "description": "A comment for this record.", - "x-example": "" + "description": "Team ID that owns the domain.", + "x-example": "" } }, "required": [ - "name", - "value", - "ttl", - "priority", - "weight", - "port" + "organizationId" ] } } @@ -25164,21 +25594,21 @@ } } }, - "\/domains\/{domainId}\/records\/srv\/{recordId}": { - "put": { - "summary": "Update an existing SRV record for the given domain.", - "operationId": "domainsUpdateRecordSRV", + "\/domains\/transfers\/out": { + "post": { + "summary": "Create a domain transfer out.", + "operationId": "domainsCreateTransferOut", "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": "Initiate a domain transfer-out by generating an authorization code for the specified domain. The returned `authCode` should be provided to the gaining provider to complete the transfer. If the domain has auto-renewal enabled, it will be automatically disabled as part of this operation.", "responses": { - "200": { - "description": "DNSRecord", + "202": { + "description": "domainTransferOut", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domainTransferOut" } } } @@ -25186,16 +25616,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordSRV", + "method": "createTransferOut", "group": null, - "weight": 969, "cookies": false, "type": "", - "demo": "domains\/update-record-srv.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" ], @@ -25210,81 +25639,26 @@ "Project": [] } ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "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": { + "domainId": { "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" + "description": "Domain unique ID.", + "x-example": "" }, - "comment": { + "organizationId": { "type": "string", - "description": "A comment for this record.", - "x-example": "" + "description": "Organization ID that this domain belongs to.", + "x-example": "" } }, "required": [ - "name", - "value", - "ttl", - "priority", - "weight", - "port" + "domainId", + "organizationId" ] } } @@ -25292,21 +25666,21 @@ } } }, - "\/domains\/{domainId}\/records\/txt": { - "post": { - "summary": "Create a new TXT record for the given domain.", - "operationId": "domainsCreateRecordTXT", + "\/domains\/{domainId}": { + "get": { + "summary": "Get a single domain by its unique ID.", + "operationId": "domainsGet", "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": "Get a domain by its unique ID.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Domain", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domain" } } } @@ -25314,16 +25688,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordTXT", + "method": "get", "group": null, - "weight": 970, "cookies": false, "type": "", - "demo": "domains\/create-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" ], @@ -25349,60 +25722,74 @@ }, "in": "path" } + ] + }, + "delete": { + "summary": "Delete a domain by its unique ID.", + "operationId": "domainsDelete", + "tags": [ + "domains" ], - "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" - ] - } - } + "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, + "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\/txt\/{recordId}": { - "put": { - "summary": "Update an existing TXT record for the given domain.", - "operationId": "domainsUpdateRecordTXT", + "\/domains\/{domainId}\/auto-renewal": { + "patch": { + "summary": "Update domain auto-renewal setting.", + "operationId": "domainsUpdateAutoRenewal", "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": "Enable or disable auto-renewal for a domain.", "responses": { "200": { - "description": "DNSRecord", + "description": "Domain", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domain" } } } @@ -25410,12 +25797,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordTXT", + "method": "updateAutoRenewal", "group": null, - "weight": 971, "cookies": false, "type": "", - "demo": "domains\/update-record-txt.md", + "demo": "domains\/update-auto-renewal.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -25444,16 +25830,6 @@ "x-example": "" }, "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" } ], "requestBody": { @@ -25462,32 +25838,14 @@ "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": "" + "autoRenewal": { + "type": "boolean", + "description": "Whether the domain should renew automatically.", + "x-example": false } }, "required": [ - "name", - "value", - "ttl" + "autoRenewal" ] } } @@ -25495,21 +25853,21 @@ } } }, - "\/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\nnameservers and update the domain's status based on whether the nameservers match the expected\nAppwrite nameservers.", "responses": { "200": { - "description": "DNSRecord", + "description": "Domain", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domain" } } } @@ -25517,16 +25875,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRecord", + "method": "updateNameservers", "group": null, - "weight": 973, "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" ], @@ -25551,39 +25908,94 @@ "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, + "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 \nfor 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": 972, "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}", @@ -25612,35 +26024,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" } } } @@ -25648,12 +26050,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTeam", + "method": "getPresetICloud", "group": null, - "weight": 947, "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}", @@ -25683,43 +26084,22 @@ }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "type": "string", - "description": "New team unique ID.", - "x-example": "" - } - }, - "required": [ - "teamId" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/transfers\/status": { - "get": { - "summary": "Get domain transfer status.", - "operationId": "domainsGetTransferStatus", + ] + }, + "post": { + "summary": "Create iCloud preset (Records)", + "operationId": "domainsCreatePresetICloud", "tags": [ "domains" ], - "description": " Retrieve the current transfer status for a domain. Returns the status, an optional reason, and a timestamp of the last status change.", + "description": "Add iCloud DNS records to the domain. This will create the required MX and SPF records\nfor using iCloud email services with your domain.", "responses": { - "200": { - "description": "domainTransferStatus", + "201": { + "description": "DNS records list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domainTransferStatus" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -25727,16 +26107,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTransferStatus", + "method": "createPresetICloud", "group": null, - "weight": 951, "cookies": false, "type": "", - "demo": "domains\/get-transfer-status.md", + "demo": "domains\/create-preset-i-cloud.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "domains.write", "platforms": [ "console" ], @@ -25765,21 +26144,21 @@ ] } }, - "\/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": "Text", + "201": { + "description": "DNS records list", "content": { - "text\/plain": { + "application\/json": { "schema": { - "type": "string" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -25787,16 +26166,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getZone", + "method": "getPresetMailgun", "group": null, - "weight": 942, "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" ], @@ -25824,20 +26202,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 \nfor 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" } } } @@ -25845,12 +26223,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateZone", + "method": "createPresetMailgun", "group": null, - "weight": 946, "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}", @@ -25880,43 +26257,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" } } } @@ -25924,19 +26282,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "functions", - "weight": 425, + "method": "getPresetOutlook", + "group": null, "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, @@ -25946,62 +26302,36 @@ }, "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": "" - }, - "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": "" }, - "in": "query" + "in": "path" } ] }, "post": { - "summary": "Create function", - "operationId": "functionsCreate", + "summary": "Create Outlook preset (Records)", + "operationId": "domainsCreatePresetOutlook", "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 Outlook DNS records to the domain. This will create the required MX records\nfor setting up Outlook email hosting for your domain.", "responses": { "201": { - "description": "Function", + "description": "DNS records list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/function" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -26009,19 +26339,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "functions", - "weight": 921, + "method": "createPresetOutlook", + "group": null, "cookies": false, "type": "", - "demo": "functions\/create.md", + "demo": "domains\/create-preset-outlook.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, @@ -26031,348 +26359,38 @@ }, "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", - "dart-3.11", - "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", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41" - ], - "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": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "templates.read", - "templates.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read", - "usage.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": "" - }, - "buildSpecification": { - "type": "string", - "description": "Build specification for the function deployments.", - "x-example": null - }, - "runtimeSpecification": { - "type": "string", - "description": "Runtime specification for the function executions.", - "x-example": null - }, - "deploymentRetention": { - "type": "integer", - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "x-example": 0, - "format": "int32" - } - }, - "required": [ - "functionId", - "name", - "runtime" - ] - } - } + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } - } + ] } }, - "\/functions\/runtimes": { + "\/domains\/{domainId}\/presets\/proton-mail": { "get": { - "summary": "List runtimes", - "operationId": "functionsListRuntimes", + "summary": "Get ProtonMail preset (Records)", + "operationId": "domainsGetPresetProtonMail", "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/runtimeList" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -26380,19 +26398,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRuntimes", - "group": "runtimes", - "weight": 427, + "method": "getPresetProtonMail", + "group": null, "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, @@ -26402,27 +26418,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 ProtonMail preset (Records)", + "operationId": "domainsCreatePresetProtonMail", "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\nfor using ProtonMail with your custom domain.", "responses": { - "200": { - "description": "Specifications List", + "201": { + "description": "DNS records list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/specificationList" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -26430,18 +26455,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", - "group": "runtimes", - "weight": 428, + "method": "createPresetProtonMail", + "group": null, "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, @@ -26452,27 +26475,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}\/presets\/zoho": { "get": { - "summary": "List templates", - "operationId": "functionsListTemplates", + "summary": "Get Zoho preset (Records)", + "operationId": "domainsGetPresetZoho", "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/templateFunctionList" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -26480,16 +26514,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTemplates", - "group": "templates", - "weight": 451, + "method": "getPresetZoho", + "group": null, "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" ], @@ -26506,191 +26539,162 @@ ], "parameters": [ { - "name": "runtimes", - "description": "List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.", - "required": false, + "name": "domainId", + "description": "Domain unique ID.", + "required": true, "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", - "dart-3.11", - "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", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "default": [] + "type": "string", + "x-example": "" }, - "in": "query" - }, + "in": "path" + } + ] + }, + "post": { + "summary": "Create Zoho Mail preset (Records)", + "operationId": "domainsCreatePresetZoho", + "tags": [ + "domains" + ], + "description": "Add Zoho Mail DNS records to the domain. This will create the required MX records\nfor setting up Zoho Mail on your domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createPresetZoho", + "group": null, + "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.", - "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" - }, + "Project": [] + } + ], + "parameters": [ { - "name": "limit", - "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", - "required": false, + "name": "domainId", + "description": "Domain unique ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 25 + "type": "string", + "x-example": "" }, - "in": "query" - }, + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records": { + "get": { + "summary": "List DNS records for a given domain.", + "operationId": "domainsListRecords", + "tags": [ + "domains" + ], + "description": "List DNS records for a given domain. You can use this endpoint to list all the DNS records\nassociated with your domain.", + "responses": { + "200": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listRecords", + "group": null, + "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": [ { - "name": "offset", - "description": "Offset the list of returned templates. Maximum offset is 5000.", + "Project": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. You may filter on attributes such as type, name, value, etc. Maximum of 100 queries are allowed, each 4096 characters long.", "required": false, "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 + "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": "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" } } } @@ -26698,16 +26702,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTemplate", - "group": "templates", - "weight": 450, + "method": "createRecordA", + "group": null, "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" ], @@ -26724,33 +26727,71 @@ ], "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.", + "default": "", + "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 \nthe properties of an A record including its name (subdomain), IPv4 address, TTL, \nand optional comment.", "responses": { "200": { - "description": "UsageFunctions", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageFunctions" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -26758,16 +26799,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listUsage", + "method": "updateRecordA", "group": null, - "weight": 444, "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" ], @@ -26784,45 +26824,81 @@ ], "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.", + "default": "", + "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 \nto 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" } } } @@ -26830,19 +26906,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "functions", - "weight": 423, + "method": "createRecordAAAA", + "group": null, "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, @@ -26852,37 +26926,76 @@ }, "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.", + "default": "", + "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\nthe properties of an existing AAAA record, including its name (subdomain), IPv6 address,\nTTL, and optional comment.", "responses": { "200": { - "description": "Function", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/function" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -26890,19 +27003,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "functions", - "weight": 922, + "method": "updateRecordAAAA", + "group": null, "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, @@ -26912,18 +27023,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" } @@ -26936,341 +27056,71 @@ "properties": { "name": { "type": "string", - "description": "Function name. Max length: 128 chars.", + "description": "Record name (subdomain).", "x-example": "" }, - "runtime": { + "value": { "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", - "dart-3.11", - "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", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41" - ], - "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.", + "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": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "templates.read", - "templates.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read", - "usage.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": "" - }, - "buildSpecification": { - "type": "string", - "description": "Build specification for the function deployments.", - "x-example": null - }, - "runtimeSpecification": { + "comment": { "type": "string", - "description": "Runtime specification for the function executions.", - "x-example": null - }, - "deploymentRetention": { - "type": "integer", - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "x-example": 0, - "format": "int32" + "description": "A comment for this record.", + "default": "", + "x-example": "" } }, "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", "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 \nto another domain name that will serve as an alias. This is particularly useful when you want to \nmap your domain to a target domain that may change its IP address.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "functions", - "weight": 426, + "method": "createRecordAlias", + "group": null, "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, @@ -27280,39 +27130,76 @@ }, "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.", + "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.", + "default": "", + "x-example": "" + } + }, + "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", "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\nthe properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \nThe ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\nIt provides a way to map one domain name to another.", "responses": { "200": { - "description": "Function", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/function" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -27320,19 +27207,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateFunctionDeployment", - "group": "functions", - "weight": 431, + "method": "updateRecordAlias", + "group": null, "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, @@ -27342,18 +27227,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" } @@ -27364,14 +27258,33 @@ "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.", + "default": "", + "x-example": "" } }, "required": [ - "deploymentId" + "name", + "value", + "ttl" ] } } @@ -27379,21 +27292,21 @@ } } }, - "\/functions\/{functionId}\/deployments": { - "get": { - "summary": "List deployments", - "operationId": "functionsListDeployments", + "\/domains\/{domainId}\/records\/caa": { + "post": { + "summary": "Create a new CAA record for the given domain.", + "operationId": "domainsCreateRecordCAA", "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deploymentList" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -27401,19 +27314,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 432, + "method": "createRecordCAA", + "group": null, "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, @@ -27423,94 +27334,96 @@ }, "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": 429, - "cookies": false, - "type": "upload", - "demo": "functions\/create-deployment.md", + "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.", + "default": "", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/caa\/{recordId}": { + "put": { + "summary": "Update an existing CAA record for the given domain.", + "operationId": "domainsUpdateRecordCAA", + "tags": [ + "domains" + ], + "description": "Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \nrecord is used to specify which certificate authorities (CAs) are authorized to issue certificates \nfor a domain.", + "responses": { + "200": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateRecordCAA", + "group": null, + "cookies": false, + "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": [] @@ -27518,55 +27431,64 @@ }, "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" } ], "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": null }, - "commands": { + "value": { "type": "string", - "description": "Build Commands.", - "x-example": "", - "x-nullable": true + "description": "CAA value (e.g. issuer domain).", + "x-example": null }, - "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.", + "default": "", + "x-example": "" } }, "required": [ - "code", - "activate" + "name", + "value", + "ttl" ] } } @@ -27574,21 +27496,21 @@ } } }, - "\/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", "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 \nA CNAME record maps a subdomain to another domain name, allowing you to create aliases \nfor your domain. For example, you can create a CNAME record to point 'blog.example.com' \nto 'example.wordpress.com'.", "responses": { - "202": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -27596,19 +27518,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", - "weight": 437, + "method": "createRecordCNAME", + "group": null, "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, @@ -27618,18 +27538,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" } @@ -27640,19 +27559,33 @@ "schema": { "type": "object", "properties": { - "deploymentId": { + "name": { "type": "string", - "description": "Deployment ID.", - "x-example": "" + "description": "Record name (subdomain).", + "x-example": "" }, - "buildId": { + "value": { "type": "string", - "description": "Build unique ID.", - "x-example": "" + "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.", + "default": "", + "x-example": "" } }, "required": [ - "deploymentId" + "name", + "value", + "ttl" ] } } @@ -27660,21 +27593,21 @@ } } }, - "\/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", "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -27682,19 +27615,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 434, + "method": "updateRecordCNAME", + "group": null, "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, @@ -27704,18 +27635,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" } @@ -27726,50 +27666,33 @@ "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 (subdomain).", + "x-example": "" }, - "rootDirectory": { + "value": { "type": "string", - "description": "Path to function code in the template repo.", - "x-example": "" + "description": "Canonical target for this CNAME record.", + "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": [] + "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.", + "default": "", + "x-example": "" } }, "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" + "name", + "value", + "ttl" ] } } @@ -27777,21 +27700,21 @@ } } }, - "\/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", "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 \nsettings for your domain, enabling secure communication over SSL\/TLS.", "responses": { - "202": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -27799,19 +27722,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 435, + "method": "createRecordHTTPS", + "group": null, "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, @@ -27821,18 +27742,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" } @@ -27843,31 +27763,33 @@ "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": "Target for the HTTPS 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.", + "default": "", + "x-example": "" } }, "required": [ - "type", - "reference" + "name", + "value", + "ttl" ] } } @@ -27875,21 +27797,21 @@ } } }, - "\/functions\/{functionId}\/deployments\/{deploymentId}": { - "get": { - "summary": "Get deployment", - "operationId": "functionsGetDeployment", + "\/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 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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -27897,19 +27819,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 430, + "method": "updateRecordHTTPS", + "group": null, "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, @@ -27919,60 +27839,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": "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.", + "default": "", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/mx": { + "post": { + "summary": "Create a new MX record for the given domain.", + "operationId": "domainsCreateRecordMX", "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 \nfor accepting email messages for the domain. Multiple MX records can be created with different priorities.\nThe priority parameter determines the order in which mail servers are used, with lower values indicating \nhigher priority.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 433, + "method": "createRecordMX", + "group": null, "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, @@ -27982,63 +27946,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}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "functionsGetDeploymentDownload", - "tags": [ - "functions" ], - "description": "Get a function deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", - "responses": { - "200": { - "description": "File" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 436, + "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.", + "default": "", + "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, "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", - "server" + "console" ], "packaging": false, "public": true, @@ -28048,67 +28050,93 @@ }, "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": "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.", + "default": "", + "x-example": "" + } + }, + "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", "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 \nto resolve the domain name to IP addresses. Each domain can have multiple NS records.", "responses": { - "200": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -28116,19 +28144,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 438, + "method": "createRecordNS", + "group": null, "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, @@ -28138,49 +28164,76 @@ }, "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": "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.", + "default": "", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } } }, - "\/functions\/{functionId}\/executions": { - "get": { - "summary": "List executions", - "operationId": "functionsListExecutions", + "\/domains\/{domainId}\/records\/ns\/{recordId}": { + "put": { + "summary": "Update an existing NS record for the given domain.", + "operationId": "domainsUpdateRecordNS", "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 \nthe properties of an NS (nameserver) record associated with your domain. You can update \nthe record name (subdomain), target nameserver value, TTL, and add or modify comments \nfor better record management.", "responses": { "200": { - "description": "Executions List", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/executionList" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -28188,24 +28241,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "listExecutions", - "group": "executions", - "weight": 441, + "method": "updateRecordNS", + "group": null, "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": [ - "executions.read", - "execution.read" - ], + "scope": "domains.write", "platforms": [ - "console", - "client", - "server", - "server" + "console" ], "packaging": false, "public": true, @@ -28215,63 +28261,86 @@ }, "security": [ { - "Project": [], - "Session": [], - "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": "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.", + "default": "", + "x-example": "" + } + }, + "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", "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 \nof servers for specific services. For example, they can be used to specify which server \nhandles a specific service like SIP or XMPP for the domain.", "responses": { "201": { - "description": "Execution", + "description": "DNSRecord", "content": { - "multipart\/form-data": { + "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -28279,24 +28348,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "createExecution", - "group": "executions", - "weight": 439, + "method": "createRecordSRV", + "group": null, "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": [ - "executions.write", - "execution.write" - ], + "scope": "domains.write", "platforms": [ - "console", - "client", - "server", - "server" + "console" ], "packaging": false, "public": true, @@ -28306,20 +28368,17 @@ }, "security": [ { - "Project": [], - "Session": [], - "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" } @@ -28330,70 +28389,76 @@ "schema": { "type": "object", "properties": { - "body": { + "name": { "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 + "description": "Record name (service name).", + "x-example": "" }, - "path": { + "value": { "type": "string", - "description": "HTTP path of execution. Path can include query params. Default value is \/", - "x-example": "" + "description": "Target hostname for this SRV record.", + "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": [] + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" }, - "headers": { - "type": "object", - "description": "HTTP headers of execution. Defaults to empty.", - "x-example": "{}" + "priority": { + "type": "integer", + "description": "Record priority.", + "x-example": null, + "format": "int32" }, - "scheduledAt": { + "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": "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.", + "default": "", + "x-example": "" } - } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] } } } } } }, - "\/functions\/{functionId}\/executions\/{executionId}": { - "get": { - "summary": "Get execution", - "operationId": "functionsGetExecution", + "\/domains\/{domainId}\/records\/srv\/{recordId}": { + "put": { + "summary": "Update an existing SRV record for the given domain.", + "operationId": "domainsUpdateRecordSRV", "tags": [ - "functions" + "domains" ], - "description": "Get a function execution log by its unique ID.", + "description": "Update an existing SRV record for the given domain.\n \nRequired parameters:\n- domainId: Domain unique ID\n- recordId: DNS record unique ID\n- name: Record name (service name)\n- value: Target hostname for this SRV record\n- ttl: Time to live, in seconds\n- priority: Record priority\n- weight: Record weight\n- port: Port number for the service\n \nOptional parameters:\n- comment: A comment for this record", "responses": { "200": { - "description": "Execution", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -28401,24 +28466,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "getExecution", - "group": "executions", - "weight": 440, + "method": "updateRecordSRV", + "group": null, "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": [ - "executions.read", - "execution.read" - ], + "scope": "domains.write", "platforms": [ - "console", - "client", - "server", - "server" + "console" ], "packaging": false, "public": true, @@ -28428,65 +28486,125 @@ }, "security": [ { - "Project": [], - "Session": [], - "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 (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.", + "default": "", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/txt": { + "post": { + "summary": "Create a new TXT record for the given domain.", + "operationId": "domainsCreateRecordTXT", "tags": [ - "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 \nto provide additional information about your domain, such as domain \nverification records, SPF records, or DKIM records.", "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": 442, + "method": "createRecordTXT", + "group": null, "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": [ - "executions.write", - "execution.write" - ], + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -28496,49 +28614,76 @@ }, "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 (subdomain) for the TXT record.", + "x-example": "" + }, + "value": { + "type": "string", + "description": "TXT record value.", + "default": "", + "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.", + "default": "", + "x-example": "" + } + }, + "required": [ + "name", + "ttl" + ] + } + } + } + } } }, - "\/functions\/{functionId}\/usage": { - "get": { - "summary": "Get function usage", - "operationId": "functionsGetUsage", + "\/domains\/{domainId}\/records\/txt\/{recordId}": { + "put": { + "summary": "Update an existing TXT record for the given domain.", + "operationId": "domainsUpdateRecordTXT", "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 \nUpdate the TXT record details for a specific domain by providing the domain ID,\nrecord ID, and the new record configuration including name, value, TTL, and an optional comment.", "responses": { "200": { - "description": "UsageFunction", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageFunction" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -28546,16 +28691,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "updateRecordTXT", "group": null, - "weight": 443, "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" ], @@ -28572,55 +28716,81 @@ ], "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 (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.", + "default": "", + "x-example": "" + } + }, + "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", "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 \nThis endpoint allows you to retrieve a specific DNS record associated with a domain\nusing its unique identifier. The record contains information about the DNS configuration\nsuch as type, value, and TTL settings.", "responses": { "200": { - "description": "Variables List", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variableList" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -28628,19 +28798,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 447, + "method": "getRecord", + "group": null, "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, @@ -28650,61 +28818,108 @@ }, "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": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", - "required": false, + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete a DNS record for the given domain.", + "operationId": "domainsDeleteRecord", + "tags": [ + "domains" + ], + "description": "Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \nfrom a specific domain.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteRecord", + "group": null, + "cookies": false, + "type": "", + "demo": "domains\/delete-record.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" }, { - "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" } ] - }, - "post": { - "summary": "Create variable", - "operationId": "functionsCreateVariable", + } + }, + "\/domains\/{domainId}\/team": { + "patch": { + "summary": "Update domain team.", + "operationId": "domainsUpdateTeam", "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 the team ID for a specific domain. This endpoint requires admin access.\n \nUpdating the team ID will transfer ownership and access control of the domain\nand all its DNS records to the new team.", "responses": { - "201": { - "description": "Variable", + "200": { + "description": "Domain", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/domain" } } } @@ -28712,19 +28927,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 923, + "method": "updateTeam", + "group": null, "cookies": false, "type": "", - "demo": "functions\/create-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, @@ -28734,18 +28947,17 @@ }, "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" } @@ -28756,31 +28968,14 @@ "schema": { "type": "object", "properties": { - "variableId": { - "type": "string", - "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "" - }, - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "" - }, - "value": { + "teamId": { "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 + "description": "New team unique ID.", + "x-example": "" } }, "required": [ - "variableId", - "key", - "value" + "teamId" ] } } @@ -28788,21 +28983,21 @@ } } }, - "\/functions\/{functionId}\/variables\/{variableId}": { + "\/domains\/{domainId}\/transfers\/status": { "get": { - "summary": "Get variable", - "operationId": "functionsGetVariable", + "summary": "Get domain transfer status.", + "operationId": "domainsGetTransferStatus", "tags": [ - "functions" + "domains" ], - "description": "Get a variable by its unique ID.", + "description": "Retrieve the current transfer status for a domain. Returns the status, an optional reason, and a timestamp of the last status change.", "responses": { "200": { - "description": "Variable", + "description": "domainTransferStatus", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/domainTransferStatus" } } } @@ -28810,19 +29005,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 446, + "method": "getTransferStatus", + "group": null, "cookies": false, "type": "", - "demo": "functions\/get-variable.md", + "demo": "domains\/get-transfer-status.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, @@ -28832,47 +29025,38 @@ }, "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" } ] - }, - "put": { - "summary": "Update variable", - "operationId": "functionsUpdateVariable", + } + }, + "\/domains\/{domainId}\/zone": { + "get": { + "summary": "Retrieve the DNS zone file for the given domain.", + "operationId": "domainsGetZone", "tags": [ - "functions" + "domains" ], - "description": "Update variable by its unique ID.", + "description": "Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\nzone file in a standardized format that can be used to configure DNS servers.", "responses": { "200": { - "description": "Variable", + "description": "Text", "content": { - "application\/json": { + "text\/plain": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "type": "string" } } } @@ -28880,19 +29064,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 448, + "method": "getZone", + "group": null, "cookies": false, "type": "", - "demo": "functions\/update-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, @@ -28902,251 +29084,36 @@ }, "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.", - "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": "", - "x-nullable": true - }, - "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 - } - } - } - } - } - } - }, - "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": 449, - "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" - } - ] - } - }, - "\/graphql": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlQuery", - "tags": [ - "graphql" - ], - "description": "Execute a GraphQL mutation.", - "responses": { - "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "query", - "group": "graphql", - "weight": 116, - "cookies": false, - "type": "graphql", - "demo": "graphql\/query.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": [ - { - "Project": [], - "Key": [], - "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" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "mutation", - "group": "graphql", - "weight": 115, - "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": [ - { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] } ] - } - }, - "\/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" } } } @@ -29154,152 +29121,77 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "health", - "weight": 452, + "method": "updateZone", + "group": null, "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": [] - } - ] - } - }, - "\/health\/anti-virus": { - "get": { - "summary": "Get antivirus", - "operationId": "healthGetAntivirus", - "tags": [ - "health" - ], - "description": "Check the Appwrite Antivirus server is up and connection is successful.", - "responses": { - "200": { - "description": "Health Antivirus", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthAntivirus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getAntivirus", - "group": "health", - "weight": 461, - "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": [ + ], + "parameters": [ { - "Project": [], - "Key": [] + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } - ] - } - }, - "\/health\/cache": { - "get": { - "summary": "Get cache", - "operationId": "healthGetCache", - "tags": [ - "health" ], - "description": "Check the Appwrite in-memory cache servers are up and connection is successful.", - "responses": { - "200": { - "description": "Status List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "DNS zone file content as a string.", + "x-example": "" + } + }, + "required": [ + "content" + ] } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "getCache", - "group": "health", - "weight": 455, - "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", "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthCertificate" + "$ref": "#\/components\/schemas\/functionList" } } } @@ -29307,23 +29199,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCertificate", - "group": "health", - "weight": 458, + "method": "list", + "group": "functions", "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": [] } @@ -29336,107 +29226,56 @@ ], "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, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, "in": "query" - } - ] - } - }, - "\/health\/console-pausing": { - "get": { - "summary": "Get console pausing health", - "operationId": "healthGetConsolePausing", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthStatus" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getConsolePausing", - "group": null, - "weight": 1063, - "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.", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 10 + "type": "string", + "x-example": "", + "default": "" }, "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.", + "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", - "default": 7 + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] - } - }, - "\/health\/db": { - "get": { - "summary": "Get DB", - "operationId": "healthGetDB", + }, + "post": { + "summary": "Create function", + "operationId": "functionsCreate", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite database 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" } } } @@ -29444,23 +29283,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDB", - "group": "health", - "weight": 454, + "method": "create", + "group": "functions", "cookies": false, "type": "", - "demo": "health\/get-db.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-db.md", "auth": { "Project": [] } @@ -29470,75 +29307,380 @@ "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": 456, - "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": [ - { - "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", + "dart-3.11", + "dart-3.12", + "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", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ], + "x-enum-name": "FunctionRuntime" + }, + "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": "" + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "default": "", + "x-example": "" + }, + "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": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "templates.read", + "templates.write", + "oauth2.read", + "oauth2.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes" + } + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "default": "", + "x-example": "" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the function.", + "default": "", + "x-example": "" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the function.", + "default": "", + "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.", + "default": false, + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function code in the linked repo.", + "default": "", + "x-example": "" + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "buildSpecification": { + "type": "string", + "description": "Build specification for the function deployments.", + "default": {}, + "x-example": null + }, + "runtimeSpecification": { + "type": "string", + "description": "Runtime specification for the function executions.", + "default": {}, + "x-example": null + }, + "deploymentRetention": { + "type": "integer", + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "functionId", + "name", + "runtime" + ] + } + } } - ] + } } }, - "\/health\/queue\/audits": { + "\/functions\/runtimes": { "get": { - "summary": "Get audits queue", - "operationId": "healthGetQueueAudits", + "summary": "List runtimes", + "operationId": "functionsListRuntimes", "tags": [ - "health" + "functions" ], - "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.\n", + "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" } } } @@ -29546,23 +29688,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueAudits", - "group": "queue", - "weight": 462, + "method": "listRuntimes", + "group": "runtimes", "cookies": false, "type": "", - "demo": "health\/get-queue-audits.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-queue-audits.md", "auth": { "Project": [] } @@ -29572,37 +29712,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\/billing-project-aggregation": { + "\/functions\/specifications": { "get": { - "summary": "Get billing project aggregation queue", - "operationId": "healthGetQueueBillingProjectAggregation", + "summary": "List specifications", + "operationId": "functionsListSpecifications", "tags": [ - "health" + "functions" ], - "description": "Get billing project aggregation queue.", + "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" } } } @@ -29610,23 +29737,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueBillingProjectAggregation", - "group": null, - "weight": 1059, + "method": "listSpecifications", + "group": "runtimes", "cookies": false, "type": "", - "demo": "health\/get-queue-billing-project-aggregation.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\/health\/get-queue-billing-project-aggregation.md", "auth": { "Project": [] } @@ -29636,37 +29761,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\/billing-team-aggregation": { + "\/functions\/templates": { "get": { - "summary": "Get billing team aggregation queue", - "operationId": "healthGetQueueBillingTeamAggregation", + "summary": "List templates", + "operationId": "functionsListTemplates", "tags": [ - "health" + "functions" ], - "description": "Get billing team aggregation queue.", + "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/templateFunctionList" } } } @@ -29674,330 +29786,216 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueBillingTeamAggregation", - "group": null, - "weight": 1058, + "method": "listTemplates", + "group": "templates", "cookies": false, "type": "", - "demo": "health\/get-queue-billing-team-aggregation.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-billing-team-aggregation.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": "runtimes", + "description": "List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.", "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": 466, - "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": [] - } - }, - "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 + "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", + "dart-3.11", + "dart-3.12", + "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", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ], + "x-enum-name": "FunctionRuntime" + }, + "default": [] }, "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": 1060, - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + }, { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 500.", + "name": "useCases", + "description": "List of use cases allowed for filtering function templates. Maximum of 100 use cases are allowed.", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 500 + "type": "array", + "items": { + "type": "string", + "enum": [ + "starter", + "databases", + "ai", + "messaging", + "utilities", + "dev-tools", + "auth" + ], + "x-enum-name": "FunctionTemplateUseCase" + }, + "default": [] }, "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": 465, - "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.", + "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": 5000 + "x-example": 1, + "default": 25 }, "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": 467, - "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": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", "required": false, "schema": { - "type": "string", - "x-example": "", - "default": "database_db_main" + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 }, "in": "query" }, { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "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", - "default": 5000 + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] } }, - "\/health\/queue\/deletes": { + "\/functions\/templates\/{templateId}": { "get": { - "summary": "Get deletes queue", - "operationId": "healthGetQueueDeletes", + "summary": "Get function template", + "operationId": "functionsGetTemplate", "tags": [ - "health" + "functions" ], - "description": "Get the number of background destructive changes 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" } } } @@ -30005,63 +30003,58 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueDeletes", - "group": "queue", - "weight": 468, + "method": "getTemplate", + "group": "templates", "cookies": false, "type": "", - "demo": "health\/get-queue-deletes.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-deletes.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\/failed\/{name}": { + "\/functions\/usage": { "get": { - "summary": "Get number of failed queue jobs", - "operationId": "healthGetFailedJobs", + "summary": "Get functions usage", + "operationId": "functionsListUsage", "tags": [ - "health" + "functions" ], - "description": "Returns the amount of failed jobs in a given queue.\n", + "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" } } } @@ -30069,90 +30062,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFailedJobs", - "group": "queue", - "weight": 475, + "method": "listUsage", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-failed-jobs.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-failed-queue-jobs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "name", - "description": "The name of the queue", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "v1-database", + "x-example": "24h", "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" + "24h", + "30d", + "90d" ], - "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 + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" }, "in": "query" } ] } }, - "\/health\/queue\/functions": { + "\/functions\/{functionId}": { "get": { - "summary": "Get functions queue", - "operationId": "healthGetQueueFunctions", + "summary": "Get function", + "operationId": "functionsGet", "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 function by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Function", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/function" } } } @@ -30160,23 +30133,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueFunctions", - "group": "queue", - "weight": 472, + "method": "get", + "group": "functions", "cookies": false, "type": "", - "demo": "health\/get-queue-functions.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-functions.md", "auth": { "Project": [] } @@ -30189,34 +30160,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\/logs": { - "get": { - "summary": "Get logs queue", - "operationId": "healthGetQueueLogs", + }, + "put": { + "summary": "Update function", + "operationId": "functionsUpdate", "tags": [ - "health" + "functions" ], - "description": "Get the number of logs 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" } } } @@ -30224,23 +30192,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueLogs", - "group": "queue", - "weight": 464, + "method": "update", + "group": "functions", "cookies": false, "type": "", - "demo": "health\/get-queue-logs.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-logs.md", "auth": { "Project": [] } @@ -30253,58 +30219,395 @@ ], "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 - }, - "in": "query" + "type": "string", + "x-example": "" + }, + "in": "path" } - ] - } - }, - "\/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" - } + "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", + "dart-3.11", + "dart-3.12", + "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", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ], + "x-enum-name": "FunctionRuntime" + }, + "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": "" + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "default": "", + "x-example": "" + }, + "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": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "templates.read", + "templates.write", + "oauth2.read", + "oauth2.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes" + } + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", + "default": "", + "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", + "default": "", + "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.", + "default": false, + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function code in the linked repo.", + "default": "", + "x-example": "" + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "buildSpecification": { + "type": "string", + "description": "Build specification for the function deployments.", + "default": {}, + "x-example": null + }, + "runtimeSpecification": { + "type": "string", + "description": "Runtime specification for the function executions.", + "default": {}, + "x-example": null + }, + "deploymentRetention": { + "type": "integer", + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "name" + ] } } } + } + }, + "delete": { + "summary": "Delete function", + "operationId": "functionsDelete", + "tags": [ + "functions" + ], + "description": "Delete a function by its unique ID.", + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "getQueueMails", - "group": "queue", - "weight": 469, + "method": "delete", + "group": "functions", "cookies": false, "type": "", - "demo": "health\/get-queue-mails.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-mails.md", "auth": { "Project": [] } @@ -30317,34 +30620,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\/messaging": { - "get": { - "summary": "Get messaging queue", - "operationId": "healthGetQueueMessaging", + "\/functions\/{functionId}\/deployment": { + "patch": { + "summary": "Update function's deployment", + "operationId": "functionsUpdateFunctionDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of messages 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" } } } @@ -30352,23 +30654,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueMessaging", - "group": "queue", - "weight": 470, + "method": "updateFunctionDeployment", + "group": "functions", "cookies": false, "type": "", - "demo": "health\/get-queue-messaging.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-messaging.md", "auth": { "Project": [] } @@ -30381,34 +30681,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": "" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } } }, - "\/health\/queue\/migrations": { + "\/functions\/{functionId}\/deployments": { "get": { - "summary": "Get migrations queue", - "operationId": "healthGetQueueMigrations", + "summary": "List deployments", + "operationId": "functionsListDeployments", "tags": [ - "health" + "functions" ], - "description": "Get the number of migrations 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" } } } @@ -30416,23 +30734,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueMigrations", - "group": "queue", - "weight": 471, + "method": "listDeployments", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-queue-migrations.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-migrations.md", "auth": { "Project": [] } @@ -30445,34 +30761,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\/region-manager": { - "get": { - "summary": "Get region manager queue", - "operationId": "healthGetQueueRegionManager", - "tags": [ - "health" + }, + "post": { + "summary": "Create deployment", + "operationId": "functionsCreateDeployment", + "tags": [ + "functions" ], - "description": "Get region manager 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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -30480,23 +30828,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueRegionManager", - "group": null, - "weight": 1061, + "method": "createDeployment", + "group": "deployments", "cookies": false, - "type": "", - "demo": "health\/get-queue-region-manager.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\/health\/get-queue-region-manager.md", "auth": { "Project": [] } @@ -30509,34 +30855,71 @@ ], "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" } - ] + ], + "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\/stats-resources": { - "get": { - "summary": "Get stats resources queue", - "operationId": "healthGetQueueStatsResources", + "\/functions\/{functionId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "functionsCreateDuplicateDeployment", "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 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" } } } @@ -30544,23 +30927,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueStatsResources", - "group": "queue", - "weight": 473, + "method": "createDuplicateDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-queue-stats-resources.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-resources.md", "auth": { "Project": [] } @@ -30573,34 +30954,58 @@ ], "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.", + "default": "", + "x-example": "" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } } }, - "\/health\/queue\/stats-usage": { - "get": { - "summary": "Get stats usage queue", - "operationId": "healthGetQueueUsage", + "\/functions\/{functionId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "functionsCreateTemplateDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of metrics 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" } } } @@ -30608,23 +31013,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueUsage", - "group": "queue", - "weight": 474, + "method": "createTemplateDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-queue-usage.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-stats-usage.md", "auth": { "Project": [] } @@ -30637,34 +31040,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" + }, + "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.", + "default": false, + "x-example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } } }, - "\/health\/queue\/threats": { - "get": { - "summary": "Get threats queue", - "operationId": "healthGetQueueThreats", + "\/functions\/{functionId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "functionsCreateVcsDeployment", "tags": [ - "health" + "functions" ], - "description": "Get threats 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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -30672,23 +31129,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueThreats", - "group": null, - "weight": 1062, + "method": "createVcsDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-queue-threats.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\/health\/get-queue-threats.md", "auth": { "Project": [] } @@ -30701,34 +31156,69 @@ ], "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" } - ] + ], + "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" + }, + "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.", + "default": false, + "x-example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } } }, - "\/health\/queue\/webhooks": { + "\/functions\/{functionId}\/deployments\/{deploymentId}": { "get": { - "summary": "Get webhooks queue", - "operationId": "healthGetQueueWebhooks", + "summary": "Get deployment", + "operationId": "functionsGetDeployment", "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 by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -30736,23 +31226,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueWebhooks", - "group": "queue", - "weight": 463, + "method": "getDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-queue-webhooks.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-webhooks.md", "auth": { "Project": [] } @@ -30765,58 +31253,56 @@ ], "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\/storage": { - "get": { - "summary": "Get storage", - "operationId": "healthGetStorage", + }, + "delete": { + "summary": "Delete deployment", + "operationId": "functionsDeleteDeployment", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite storage device is up and connection is successful.", + "description": "Delete a code deployment 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": "getStorage", - "group": "storage", - "weight": 460, + "method": "deleteDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-storage.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.md", "auth": { "Project": [] } @@ -30826,48 +31312,62 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "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" + } ] } }, - "\/health\/storage\/local": { + "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { "get": { - "summary": "Get local storage", - "operationId": "healthGetStorageLocal", + "summary": "Get deployment download", + "operationId": "functionsGetDeploymentDownload", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite local storage device is up and connection is successful.", + "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 Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthStatus" - } - } - } + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "getStorageLocal", - "group": "storage", - "weight": 459, + "method": "getDeploymentDownload", + "group": "deployments", "cookies": false, - "type": "", - "demo": "health\/get-storage-local.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-storage-local.md", "auth": { "Project": [] } @@ -30875,26 +31375,65 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "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": "string", + "x-example": "source", + "enum": [ + "source", + "output" + ], + "x-enum-name": "DeploymentDownloadType", + "default": "source" + }, + "in": "query" } ] } }, - "\/health\/time": { - "get": { - "summary": "Get time", - "operationId": "healthGetTime", + "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "functionsUpdateDeploymentStatus", "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": "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 Time", + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthTime" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -30902,23 +31441,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTime", - "group": "health", - "weight": 457, + "method": "updateDeploymentStatus", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-time.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-time.md", "auth": { "Project": [] } @@ -30928,24 +31465,46 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "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" + } ] } }, - "\/locale": { + "\/functions\/{functionId}\/executions": { "get": { - "summary": "Get user locale", - "operationId": "localeGet", + "summary": "List executions", + "operationId": "functionsListExecutions", "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 a list of all the current user function execution logs. You can use the query params to filter your results.", "responses": { "200": { - "description": "Locale", + "description": "Executions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/locale" + "$ref": "#\/components\/schemas\/executionList" } } } @@ -30953,16 +31512,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 49, + "method": "listExecutions", + "group": "executions", "cookies": false, "type": "", - "demo": "locale\/get.md", + "demo": "functions\/list-executions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": [ + "executions.read", + "execution.read" + ], "platforms": [ "console", "client", @@ -30971,7 +31532,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [] } @@ -30983,24 +31543,58 @@ "Key": [], "JWT": [] } + ], + "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", + "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" + } ] - } - }, - "\/locale\/codes": { - "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", "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": "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 codes list", + "201": { + "description": "Execution", "content": { - "application\/json": { + "multipart\/form-data": { "schema": { - "$ref": "#\/components\/schemas\/localeCodeList" + "$ref": "#\/components\/schemas\/execution" } } } @@ -31008,16 +31602,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCodes", - "group": null, - "weight": 50, + "method": "createExecution", + "group": "executions", "cookies": false, "type": "", - "demo": "locale\/list-codes.md", + "demo": "functions\/create-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": [ + "executions.write", + "execution.write" + ], "platforms": [ "console", "client", @@ -31026,7 +31622,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", "auth": { "Project": [] } @@ -31038,79 +31633,93 @@ "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" + "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.", + "default": "", + "x-example": "" + }, + "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": "" + }, + "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" + }, + "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.", + "x-example": "", + "x-nullable": true + } } } } } - }, - "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": [], - "Key": [], - "JWT": [] - } - ] + } } }, - "\/locale\/countries": { + "\/functions\/{functionId}\/executions\/{executionId}": { "get": { - "summary": "List countries", - "operationId": "localeListCountries", + "summary": "Get execution", + "operationId": "functionsGetExecution", "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/countryList" + "$ref": "#\/components\/schemas\/execution" } } } @@ -31118,16 +31727,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountries", - "group": null, - "weight": 51, + "method": "getExecution", + "group": "executions", "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": [ + "executions.read", + "execution.read" + ], "platforms": [ "console", "client", @@ -31136,7 +31747,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", "auth": { "Project": [] } @@ -31148,50 +31758,62 @@ "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" + } ] - } - }, - "\/locale\/countries\/eu": { - "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", + }, + "delete": { + "summary": "Delete execution", + "operationId": "functionsDeleteExecution", "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/countryList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listCountriesEU", - "group": null, - "weight": 52, + "method": "deleteExecution", + "group": "executions", "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": [ + "executions.write", + "execution.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": [] } @@ -31199,28 +31821,48 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "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\/countries\/phones": { + "\/functions\/{functionId}\/usage": { "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", + "summary": "Get function usage", + "operationId": "functionsGetUsage", "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/phoneList" + "$ref": "#\/components\/schemas\/usageFunction" } } } @@ -31228,54 +31870,80 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountriesPhones", + "method": "getUsage", "group": null, - "weight": 53, "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", - "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": [], - "Session": [], - "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\/currencies": { + "\/functions\/{functionId}\/variables": { "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", + "summary": "List variables", + "operationId": "functionsListVariables", "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/currencyList" + "$ref": "#\/components\/schemas\/variableList" } } } @@ -31283,25 +31951,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCurrencies", - "group": null, - "weight": 55, + "method": "listVariables", + "group": "variables", "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", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", "auth": { "Project": [] } @@ -31309,28 +31973,60 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/locale\/languages": { - "get": { - "summary": "List languages", - "operationId": "localeListLanguages", + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/languageList" + "$ref": "#\/components\/schemas\/variable" } } } @@ -31338,25 +32034,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listLanguages", - "group": null, - "weight": 56, + "method": "createVariable", + "group": "variables", "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", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", "auth": { "Project": [] } @@ -31364,28 +32056,75 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] - } - }, - "\/manager\/blocks": { - "post": { - "summary": "Create a new resource block for a project", - "operationId": "managerCreateBlock", + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "variableId": { + "type": "string", + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "" + }, + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } + } + } + } + }, + "\/functions\/{functionId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "functionsGetVariable", "tags": [ - "manager" + "functions" ], - "description": "Creates a new resource block.", + "description": "Get a variable by its unique ID.", "responses": { - "201": { - "description": "Block", + "200": { + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/block" + "$ref": "#\/components\/schemas\/variable" } } } @@ -31393,91 +32132,68 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBlock", - "group": null, - "weight": 996, + "method": "getVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "manager\/create-block.md", + "demo": "functions\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "", + "scope": "functions.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true + "public": true, + "auth": { + "Project": [] + } }, - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "projectId": { - "type": "string", - "description": "Project ID", - "x-example": "" - }, - "resourceType": { - "type": "string", - "description": "Resource type to block (e.g., projects, functions, databases, storage, etc.)", - "x-example": "projects", - "enum": [ - "projects", - "functions", - "sites", - "databases", - "buckets", - "providers", - "topics", - "subscribers", - "messages" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "resourceId": { - "type": "string", - "description": "Optional resource ID (if omitted, all resources of this type will be blocked)", - "x-example": "" - }, - "reason": { - "type": "string", - "description": "Optional reason why the resource is blocked", - "x-example": "" - }, - "expiredAt": { - "type": "string", - "description": "Optional expiration date for the block", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - } - }, - "required": [ - "projectId", - "resourceType" - ] - } - } + "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" + } + ] }, - "delete": { - "summary": "Delete resource blocks for a project", - "operationId": "managerDeleteBlock", + "put": { + "summary": "Update variable", + "operationId": "functionsUpdateVariable", "tags": [ - "manager" + "functions" ], - "description": "Deletes resource blocks for a project.", + "description": "Update variable by its unique ID.", "responses": { "200": { - "description": "BlockDelete", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/blockDelete" + "$ref": "#\/components\/schemas\/variable" } } } @@ -31485,134 +32201,161 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteBlock", - "group": null, - "weight": 998, + "method": "updateVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "manager\/delete-block.md", + "demo": "functions\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "", + "scope": "functions.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true + "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" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "projectId": { + "key": { "type": "string", - "description": "Project ID", - "x-example": "" + "description": "Variable key. Max length: 255 chars.", + "x-example": "", + "x-nullable": true }, - "resourceType": { + "value": { "type": "string", - "description": "Resource type to unblock", - "x-example": "projects", - "enum": [ - "projects", - "functions", - "sites", - "databases", - "buckets", - "providers", - "topics", - "subscribers", - "messages" - ], - "x-enum-name": null, - "x-enum-keys": [] + "description": "Variable value. Max length: 8192 chars.", + "x-example": "", + "x-nullable": true }, - "resourceId": { - "type": "string", - "description": "Optional resource ID (if omitted, all blocks of this type will be removed)", - "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, + "x-nullable": true } - }, - "required": [ - "projectId", - "resourceType" - ] + } } } } } - } - }, - "\/manager\/blocks\/{projectId}": { - "get": { - "summary": "List all resource blocks for a project", - "operationId": "managerListBlocks", + }, + "delete": { + "summary": "Delete variable", + "operationId": "functionsDeleteVariable", "tags": [ - "manager" + "functions" ], - "description": "Lists all resource blocks for a project.", + "description": "Delete a variable by its unique ID.", "responses": { - "200": { - "description": "Blocks list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/blockList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listBlocks", - "group": null, - "weight": 997, + "method": "deleteVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "manager\/list-blocks.md", + "demo": "functions\/delete-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "", + "scope": "functions.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true + "public": true, + "auth": { + "Project": [] + } }, + "security": [ + { + "Project": [], + "Key": [] + } + ], "parameters": [ { - "name": "projectId", - "description": "Project ID", + "name": "functionId", + "description": "Function unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } ] } }, - "\/manager\/users\/status": { - "patch": { - "summary": "Update a user status by ID or email", - "operationId": "managerUpdateUserStatus", + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", "tags": [ - "manager" + "graphql" ], - "description": "Updates a console user status using a user ID or email address.", + "description": "Execute a GraphQL mutation.", "responses": { "200": { - "description": "User", + "description": "Any", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/any" } } } @@ -31620,73 +32363,53 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateUserStatus", - "group": "users", - "weight": 999, + "method": "query", + "group": "graphql", "cookies": false, - "type": "", - "demo": "manager\/update-user-status.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": "", + "scope": "graphql", "platforms": [ - "console" + "console", + "server", + "client", + "server" ], "packaging": false, - "public": true + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", + "auth": { + "Project": [] + } }, - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "" - }, - "email": { - "type": "string", - "description": "User email address.", - "x-example": "" - }, - "status": { - "type": "boolean", - "description": "User status. Set to `false` to block and `true` to unblock.", - "x-example": false - }, - "reason": { - "type": "string", - "description": "Optional reason when blocking a user. Accepted for parity with the CLI task but not persisted.", - "x-example": "" - } - }, - "required": [ - "status" - ] - } - } + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] } - } + ] } }, - "\/messaging\/messages": { - "get": { - "summary": "List messages", - "operationId": "messagingListMessages", + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", "tags": [ - "messaging" + "graphql" ], - "description": "Get a list of all messages from the current Appwrite project.", + "description": "Execute a GraphQL mutation.", "responses": { "200": { - "description": "Message list", + "description": "Any", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/messageList" + "$ref": "#\/components\/schemas\/any" } } } @@ -31694,23 +32417,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMessages", - "group": "messages", - "weight": 157, + "method": "mutation", + "group": "graphql", "cookies": false, - "type": "", - "demo": "messaging\/list-messages.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.read", + "scope": "graphql", "platforms": [ "console", + "server", + "client", "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\/graphql\/post.md", "auth": { "Project": [] } @@ -31718,63 +32442,28 @@ "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": "", - "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" + "Key": [], + "Session": [], + "JWT": [] } ] } }, - "\/messaging\/messages\/email": { - "post": { - "summary": "Create email", - "operationId": "messagingCreateEmail", + "\/health": { + "get": { + "summary": "Get HTTP", + "operationId": "healthGet", "tags": [ - "messaging" + "health" ], - "description": "Create a new email message.", + "description": "Check the Appwrite HTTP server is up and responsive.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Health Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/healthStatus" } } } @@ -31782,23 +32471,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEmail", - "group": "messages", - "weight": 154, + "method": "get", + "group": "health", "cookies": false, "type": "", - "demo": "messaging\/create-email.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-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md", "auth": { "Project": [] } @@ -31808,120 +32496,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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - } - }, - "required": [ - "messageId", - "subject", - "content" - ] - } - } - } - } + ] } }, - "\/messaging\/messages\/email\/{messageId}": { - "patch": { - "summary": "Update email", - "operationId": "messagingUpdateEmail", + "\/health\/anti-virus": { + "get": { + "summary": "Get antivirus", + "operationId": "healthGetAntivirus", "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": "Check the Appwrite Antivirus server is up and connection is successful.", "responses": { "200": { - "description": "Message", + "description": "Health Antivirus", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/healthAntivirus" } } } @@ -31929,23 +32521,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "messages", - "weight": 161, + "method": "getAntivirus", + "group": "health", "cookies": false, "type": "", - "demo": "messaging\/update-email.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": 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-storage-anti-virus.md", "auth": { "Project": [] } @@ -31955,132 +32546,74 @@ "Project": [], "Key": [] } + ] + } + }, + "\/health\/cache": { + "get": { + "summary": "Get cache", + "operationId": "healthGetCache", + "tags": [ + "health" ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "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": "", - "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "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": "Check the Appwrite in-memory cache 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": "getCache", + "group": "health", + "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": [] + } + ] } }, - "\/messaging\/messages\/push": { - "post": { - "summary": "Create push notification", - "operationId": "messagingCreatePush", + "\/health\/certificate": { + "get": { + "summary": "Get the SSL certificate for a domain", + "operationId": "healthGetCertificate", "tags": [ - "messaging" + "health" ], - "description": "Create a new push notification.", + "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" } } } @@ -32088,23 +32621,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPush", - "group": "messages", - "weight": 156, + "method": "getCertificate", + "group": "health", "cookies": false, "type": "", - "demo": "messaging\/create-push.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-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", "auth": { "Project": [] } @@ -32115,151 +32647,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": "" - }, - "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "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" - ] - } - } + "parameters": [ + { + "name": "domain", + "description": "string", + "required": false, + "schema": { + "type": "string" + }, + "in": "query" } - } + ] } }, - "\/messaging\/messages\/push\/{messageId}": { - "patch": { - "summary": "Update push notification", - "operationId": "messagingUpdatePush", + "\/health\/console-pausing": { + "get": { + "summary": "Get console pausing health", + "operationId": "healthGetConsolePausing", "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": "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" } } } @@ -32267,23 +32682,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePush", - "group": "messages", - "weight": 163, + "method": "getConsolePausing", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-push.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-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-console-pausing.md", "auth": { "Project": [] } @@ -32296,263 +32710,118 @@ ], "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" - }, - "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "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 - } + "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", + "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": [] + } + ] } }, - "\/messaging\/messages\/sms": { - "post": { - "summary": "Create SMS", - "operationId": "messagingCreateSms", + "\/health\/pubsub": { + "get": { + "summary": "Get pubsub", + "operationId": "healthGetPubSub", "tags": [ - "messaging" + "health" ], - "description": "Create a new SMS message.", + "description": "Check the Appwrite pub-sub 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" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSms", - "group": "messages", - "weight": 155, + "method": "getPubSub", + "group": "health", "cookies": false, "type": "", - "demo": "messaging\/create-sms.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": 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-pubsub.md", "auth": { "Project": [] } @@ -32562,177 +32831,47 @@ "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - } - }, - "required": [ - "messageId", - "content" - ] - } - } - } - } + ] } }, - "\/messaging\/messages\/sms\/{messageId}": { - "patch": { - "summary": "Update SMS", - "operationId": "messagingUpdateSms", + "\/health\/queue\/audits": { + "get": { + "summary": "Get audits queue", + "operationId": "healthGetQueueAudits", "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 the number of audit logs that are waiting to be processed in the Appwrite internal queue server.\n", "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": 162, + "method": "getQueueAudits", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/update-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\/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\/references\/health\/get-queue-audits.md", "auth": { "Project": [] } @@ -32745,90 +32884,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" - } - ], - "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - } - } - } - } + "in": "query" } - } + ] } }, - "\/messaging\/messages\/{messageId}": { + "\/health\/queue\/billing-project-aggregation": { "get": { - "summary": "Get message", - "operationId": "messagingGetMessage", + "summary": "Get billing project aggregation queue", + "operationId": "healthGetQueueBillingProjectAggregation", "tags": [ - "messaging" + "health" ], - "description": "Get a message by its unique ID.\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" } } } @@ -32836,23 +32919,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMessage", - "group": "messages", - "weight": 160, + "method": "getQueueBillingProjectAggregation", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/get-message.md", + "demo": "health\/get-queue-billing-project-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-project-aggregation.md", "auth": { "Project": [] } @@ -32865,48 +32947,57 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" + "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": "path" + "in": "query" } ] - }, - "delete": { - "summary": "Delete message", - "operationId": "messagingDelete", + } + }, + "\/health\/queue\/billing-team-aggregation": { + "get": { + "summary": "Get billing team aggregation queue", + "operationId": "healthGetQueueBillingTeamAggregation", "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 billing team aggregation queue.", "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": 164, + "method": "getQueueBillingTeamAggregation", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/delete.md", + "demo": "health\/get-queue-billing-team-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": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", "auth": { "Project": [] } @@ -32919,33 +33010,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" + "in": "query" } ] } }, - "\/messaging\/messages\/{messageId}\/logs": { + "\/health\/queue\/builds": { "get": { - "summary": "List message logs", - "operationId": "messagingListMessageLogs", + "summary": "Get builds queue", + "operationId": "healthGetQueueBuilds", "tags": [ - "messaging" + "health" ], - "description": "Get the message activity logs listed 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": "Logs List", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -32953,23 +33045,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMessageLogs", - "group": "logs", - "weight": 158, + "method": "getQueueBuilds", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/list-message-logs.md", + "demo": "health\/get-queue-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\/references\/health\/get-queue-builds.md", "auth": { "Project": [] } @@ -32982,57 +33073,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 5000.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "integer", + "format": "int32", + "default": 5000 }, "in": "query" } ] } }, - "\/messaging\/messages\/{messageId}\/targets": { + "\/health\/queue\/builds-priority": { "get": { - "summary": "List message targets", - "operationId": "messagingListTargets", + "summary": "Get billing aggregation queue", + "operationId": "healthGetQueuePriorityBuilds", "tags": [ - "messaging" + "health" ], - "description": "Get a list of the targets associated with a message.", + "description": "Get the priority builds queue size.", "responses": { "200": { - "description": "Target list", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/targetList" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -33040,23 +33108,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "messages", - "weight": 159, + "method": "getQueuePriorityBuilds", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/list-targets.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-targets.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-priority-builds.md", "auth": { "Project": [] } @@ -33069,57 +33136,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 500.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "integer", + "format": "int32", + "default": 500 }, "in": "query" } ] } }, - "\/messaging\/providers": { + "\/health\/queue\/certificates": { "get": { - "summary": "List providers", - "operationId": "messagingListProviders", + "summary": "Get certificates queue", + "operationId": "healthGetQueueCertificates", "tags": [ - "messaging" + "health" ], - "description": "Get a list of all providers from the current Appwrite project.", + "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 list", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/providerList" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -33127,23 +33171,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listProviders", - "group": "providers", - "weight": 128, + "method": "getQueueCertificates", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/list-providers.md", + "demo": "health\/get-queue-certificates.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-certificates.md", "auth": { "Project": [] } @@ -33156,154 +33199,131 @@ ], "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, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "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", + "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": [ { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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": 127, + "method": "getQueueDeletes", + "group": "queue", "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": [] } @@ -33314,173 +33334,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>" - }, - "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": 141, + "method": "getFailedJobs", + "group": "queue", "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": [] } @@ -33493,169 +33399,83 @@ ], "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": "HealthQueueName" }, "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": 126, + "method": "getQueueFunctions", + "group": "queue", "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": [] } @@ -33666,146 +33486,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>" - }, - "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": 140, + "method": "getQueueLogs", + "group": "queue", "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": [] } @@ -33818,61 +33551,97 @@ ], "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\/queue\/mails": { + "get": { + "summary": "Get mails queue", + "operationId": "healthGetQueueMails", + "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 - }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "x-example": "{}", - "x-nullable": true - } + "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", + "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": [] + } + }, + "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" + } + ] } }, - "\/messaging\/providers\/mailgun": { - "post": { - "summary": "Create Mailgun provider", - "operationId": "messagingCreateMailgunProvider", + "\/health\/queue\/messaging": { + "get": { + "summary": "Get messaging queue", + "operationId": "healthGetQueueMessaging", "tags": [ - "messaging" + "health" ], - "description": "Create a new Mailgun 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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -33880,23 +33649,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMailgunProvider", - "group": "providers", - "weight": 117, + "method": "getQueueMessaging", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/create-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\/create-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-messaging.md", "auth": { "Project": [] } @@ -33907,92 +33675,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\/migrations": { + "get": { + "summary": "Get migrations queue", + "operationId": "healthGetQueueMigrations", "tags": [ - "messaging" + "health" ], - "description": "Update a Mailgun 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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -34000,23 +33712,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMailgunProvider", - "group": "providers", - "weight": 131, + "method": "getQueueMigrations", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/update-mailgun-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-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-migrations.md", "auth": { "Project": [] } @@ -34029,92 +33740,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\/region-manager": { + "get": { + "summary": "Get region manager queue", + "operationId": "healthGetQueueRegionManager", "tags": [ - "messaging" + "health" ], - "description": "Create a new MSG91 provider.", + "description": "Get region manager queue.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -34122,23 +33775,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMsg91Provider", - "group": "providers", - "weight": 121, + "method": "getQueueRegionManager", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-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\/create-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-region-manager.md", "auth": { "Project": [] } @@ -34149,69 +33801,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 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/msg91\/{providerId}": { - "patch": { - "summary": "Update Msg91 provider", - "operationId": "messagingUpdateMsg91Provider", + "\/health\/queue\/stats-resources": { + "get": { + "summary": "Get stats resources queue", + "operationId": "healthGetQueueStatsResources", "tags": [ - "messaging" + "health" ], - "description": "Update a MSG91 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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -34219,23 +33838,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMsg91Provider", - "group": "providers", - "weight": 135, + "method": "getQueueStatsResources", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/update-msg-91-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\/update-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", "auth": { "Project": [] } @@ -34248,70 +33866,97 @@ ], "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\/queue\/stats-usage": { + "get": { + "summary": "Get stats usage queue", + "operationId": "healthGetQueueUsage", + "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 - }, - "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>" - } + "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", + "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": [] + } + }, + "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" + } + ] } }, - "\/messaging\/providers\/resend": { - "post": { - "summary": "Create Resend provider", - "operationId": "messagingCreateResendProvider", + "\/health\/queue\/threats": { + "get": { + "summary": "Get threats queue", + "operationId": "healthGetQueueThreats", "tags": [ - "messaging" + "health" ], - "description": "Create a new Resend 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" } } } @@ -34319,23 +33964,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createResendProvider", - "group": "providers", - "weight": 119, + "method": "getQueueThreats", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-resend-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-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", "auth": { "Project": [] } @@ -34346,81 +33990,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 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/resend\/{providerId}": { - "patch": { - "summary": "Update Resend provider", - "operationId": "messagingUpdateResendProvider", + "\/health\/queue\/webhooks": { + "get": { + "summary": "Get webhooks queue", + "operationId": "healthGetQueueWebhooks", "tags": [ - "messaging" + "health" ], - "description": "Update a Resend 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" } } } @@ -34428,23 +34027,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateResendProvider", - "group": "providers", - "weight": 133, + "method": "getQueueWebhooks", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/update-resend-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-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", "auth": { "Project": [] } @@ -34457,81 +34055,84 @@ ], "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": "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>" - } + "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", + "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\/sendgrid": { - "post": { - "summary": "Create Sendgrid provider", - "operationId": "messagingCreateSendgridProvider", + "\/health\/storage\/local": { + "get": { + "summary": "Get local storage", + "operationId": "healthGetStorageLocal", "tags": [ - "messaging" + "health" ], - "description": "Create a new Sendgrid 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" } } } @@ -34539,23 +34140,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSendgridProvider", - "group": "providers", - "weight": 118, + "method": "getStorageLocal", + "group": "storage", "cookies": false, "type": "", - "demo": "messaging\/create-sendgrid-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-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", "auth": { "Project": [] } @@ -34565,82 +34165,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>" - }, - "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" - ] - } - } - } - } + ] } }, - "\/messaging\/providers\/sendgrid\/{providerId}": { - "patch": { - "summary": "Update Sendgrid provider", - "operationId": "messagingUpdateSendgridProvider", + "\/health\/time": { + "get": { + "summary": "Get time", + "operationId": "healthGetTime", "tags": [ - "messaging" + "health" ], - "description": "Update a Sendgrid 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" } } } @@ -34648,23 +34190,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSendgridProvider", - "group": "providers", - "weight": 132, + "method": "getTime", + "group": "health", "cookies": false, "type": "", - "demo": "messaging\/update-sendgrid-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-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", "auth": { "Project": [] } @@ -34674,194 +34215,49 @@ "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 - }, - "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", + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", "tags": [ - "messaging" + "locale" ], - "description": "Create a new SMTP 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" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSmtpProvider", - "group": "providers", - "weight": 120, + "method": "get", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-smtp-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": 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\/locale\/get-locale.md", "auth": { "Project": [] } @@ -34869,229 +34265,53 @@ "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>" - }, - "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" - ] - } - } + "Session": [], + "Key": [], + "JWT": [] } - } + ] } }, - "\/messaging\/providers\/smtp\/{providerId}": { - "patch": { - "summary": "Update SMTP provider", - "operationId": "messagingUpdateSmtpProvider", + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", "tags": [ - "messaging" + "locale" ], - "description": "Update a SMTP 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" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSmtpProvider", - "group": "providers", - "weight": 134, + "method": "listCodes", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-smtp-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": 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\/locale\/list-locale-codes.md", "auth": { "Project": [] } @@ -35099,126 +34319,28 @@ "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>" - }, - "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 - } - } - } - } + "Session": [], + "Key": [], + "JWT": [] } - } + ] } }, - "\/messaging\/providers\/telesign": { - "post": { - "summary": "Create Telesign provider", - "operationId": "messagingCreateTelesignProvider", + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", "tags": [ - "messaging" + "locale" ], - "description": "Create a new Telesign 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" } } } @@ -35226,23 +34348,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTelesignProvider", - "group": "providers", - "weight": 122, + "method": "listContinents", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-telesign-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-telesign-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", "auth": { "Project": [] } @@ -35250,73 +34373,28 @@ "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" - ] - } - } + "Session": [], + "Key": [], + "JWT": [] } - } + ] } }, - "\/messaging\/providers\/telesign\/{providerId}": { - "patch": { - "summary": "Update Telesign provider", - "operationId": "messagingUpdateTelesignProvider", + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", "tags": [ - "messaging" + "locale" ], - "description": "Update a Telesign 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" } } } @@ -35324,23 +34402,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTelesignProvider", - "group": "providers", - "weight": 136, + "method": "listCountries", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-telesign-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-telesign-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", "auth": { "Project": [] } @@ -35348,75 +34427,82 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" + "Session": [], + "Key": [], + "JWT": [] } + ] + } + }, + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", + "tags": [ + "locale" ], - "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>" - } + "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, + "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": [], + "Key": [], + "JWT": [] + } + ] } }, - "\/messaging\/providers\/textmagic": { - "post": { - "summary": "Create Textmagic provider", - "operationId": "messagingCreateTextmagicProvider", + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", "tags": [ - "messaging" + "locale" ], - "description": "Create a new Textmagic provider.", + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Phones List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/phoneList" } } } @@ -35424,23 +34510,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTextmagicProvider", - "group": "providers", - "weight": 123, + "method": "listCountriesPhones", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-textmagic-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\/create-textmagic-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", "auth": { "Project": [] } @@ -35448,73 +34535,28 @@ "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" - ] - } - } + "Session": [], + "Key": [], + "JWT": [] } - } + ] } }, - "\/messaging\/providers\/textmagic\/{providerId}": { - "patch": { - "summary": "Update Textmagic provider", - "operationId": "messagingUpdateTextmagicProvider", + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", "tags": [ - "messaging" + "locale" ], - "description": "Update a Textmagic provider 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": "Provider", + "description": "Currencies List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/currencyList" } } } @@ -35522,23 +34564,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTextmagicProvider", - "group": "providers", - "weight": 137, + "method": "listCurrencies", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-textmagic-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\/update-textmagic-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", "auth": { "Project": [] } @@ -35546,75 +34589,28 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } - ], - "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>" - } - } - } - } - } - } + ] } }, - "\/messaging\/providers\/twilio": { - "post": { - "summary": "Create Twilio provider", - "operationId": "messagingCreateTwilioProvider", + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", "tags": [ - "messaging" + "locale" ], - "description": "Create a new Twilio provider.", + "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Languages List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/languageList" } } } @@ -35622,23 +34618,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTwilioProvider", - "group": "providers", - "weight": 124, + "method": "listLanguages", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-twilio-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\/create-twilio-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", "auth": { "Project": [] } @@ -35646,73 +34643,28 @@ "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" - ] - } - } + "Session": [], + "Key": [], + "JWT": [] } - } + ] } }, - "\/messaging\/providers\/twilio\/{providerId}": { - "patch": { - "summary": "Update Twilio provider", - "operationId": "messagingUpdateTwilioProvider", + "\/manager\/blocks": { + "post": { + "summary": "Create a new resource block for a project", + "operationId": "managerCreateBlock", "tags": [ - "messaging" + "manager" ], - "description": "Update a Twilio provider by its unique ID.", + "description": "Creates a new resource block.", "responses": { - "200": { - "description": "Provider", + "201": { + "description": "Block", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/block" } } } @@ -35720,99 +34672,92 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTwilioProvider", - "group": "providers", - "weight": 138, + "method": "createBlock", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-twilio-provider.md", + "demo": "manager\/create-block.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", - "auth": { - "Project": [] - } + "public": true }, - "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": { + "projectId": { "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" + "description": "Project ID", + "x-example": "<PROJECT_ID>" }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "resourceType": { + "type": "string", + "description": "Resource type to block (e.g., projects, functions, databases, storage, etc.)", + "x-example": "projects", + "enum": [ + "projects", + "functions", + "sites", + "databases", + "buckets", + "providers", + "topics", + "subscribers", + "messages" + ], + "x-enum-name": "BlockResourceType" }, - "accountSid": { + "resourceId": { "type": "string", - "description": "Twilio account secret ID.", - "x-example": "<ACCOUNT_SID>" + "description": "Optional resource ID (if omitted, all resources of this type will be blocked)", + "default": "", + "x-example": "<RESOURCE_ID>" }, - "authToken": { + "reason": { "type": "string", - "description": "Twilio authentication token.", - "x-example": "<AUTH_TOKEN>" + "description": "Optional reason why the resource is blocked", + "default": "", + "x-example": "<REASON>" }, - "from": { + "expiredAt": { "type": "string", - "description": "Sender number.", - "x-example": "<FROM>" + "description": "Optional expiration date for the block", + "default": "", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" } - } + }, + "required": [ + "projectId", + "resourceType" + ] } } } } - } - }, - "\/messaging\/providers\/vonage": { - "post": { - "summary": "Create Vonage provider", - "operationId": "messagingCreateVonageProvider", + }, + "delete": { + "summary": "Delete resource blocks for a project", + "operationId": "managerDeleteBlock", "tags": [ - "messaging" + "manager" ], - "description": "Create a new Vonage provider.", + "description": "Deletes resource blocks for a project.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "BlockDelete", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/blockDelete" } } } @@ -35820,75 +34765,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVonageProvider", - "group": "providers", - "weight": 125, + "method": "deleteBlock", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-vonage-provider.md", + "demo": "manager\/delete-block.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", - "auth": { - "Project": [] - } + "public": true }, - "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": { + "projectId": { "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" + "description": "Project ID", + "x-example": "<PROJECT_ID>" }, - "apiKey": { + "resourceType": { "type": "string", - "description": "Vonage API key.", - "x-example": "<API_KEY>" + "description": "Resource type to unblock", + "x-example": "projects", + "enum": [ + "projects", + "functions", + "sites", + "databases", + "buckets", + "providers", + "topics", + "subscribers", + "messages" + ], + "x-enum-name": "BlockResourceType" }, - "apiSecret": { + "resourceId": { "type": "string", - "description": "Vonage API secret.", - "x-example": "<API_SECRET>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Optional resource ID (if omitted, all blocks of this type will be removed)", + "default": "", + "x-example": "<RESOURCE_ID>" } }, "required": [ - "providerId", - "name" + "projectId", + "resourceType" ] } } @@ -35896,21 +34825,21 @@ } } }, - "\/messaging\/providers\/vonage\/{providerId}": { - "patch": { - "summary": "Update Vonage provider", - "operationId": "messagingUpdateVonageProvider", + "\/manager\/blocks\/{projectId}": { + "get": { + "summary": "List all resource blocks for a project", + "operationId": "managerListBlocks", "tags": [ - "messaging" + "manager" ], - "description": "Update a Vonage provider by its unique ID.", + "description": "Lists all resource blocks for a project.", "responses": { "200": { - "description": "Provider", + "description": "Blocks list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/blockList" } } } @@ -35918,99 +34847,126 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVonageProvider", - "group": "providers", - "weight": 139, + "method": "listBlocks", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-vonage-provider.md", + "demo": "manager\/list-blocks.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", - "auth": { - "Project": [] - } + "public": true }, - "security": [ - { - "Project": [], - "Key": [] - } - ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "projectId", + "description": "Project ID", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } + ] + } + }, + "\/manager\/users\/status": { + "patch": { + "summary": "Update a user status by ID or email", + "operationId": "managerUpdateUserStatus", + "tags": [ + "manager" ], + "description": "Updates a console user status using a user ID or email address.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateUserStatus", + "group": "users", + "cookies": false, + "type": "", + "demo": "manager\/update-user-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "", + "platforms": [ + "console" + ], + "packaging": false, + "public": true + }, "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { + "userId": { "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "User ID.", + "default": "", + "x-example": "<USER_ID>" }, - "apiKey": { + "email": { "type": "string", - "description": "Vonage API key.", - "x-example": "<API_KEY>" + "description": "User email address.", + "default": "", + "x-example": "<EMAIL>" }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "x-example": "<API_SECRET>" + "status": { + "type": "boolean", + "description": "User status. Set to `false` to block and `true` to unblock.", + "x-example": false }, - "from": { + "reason": { "type": "string", - "description": "Sender number.", - "x-example": "<FROM>" + "description": "Optional reason when blocking a user. Accepted for parity with the CLI task but not persisted.", + "default": "", + "x-example": "<REASON>" } - } + }, + "required": [ + "status" + ] } } } } } }, - "\/messaging\/providers\/{providerId}": { + "\/messaging\/messages": { "get": { - "summary": "Get provider", - "operationId": "messagingGetProvider", + "summary": "List messages", + "operationId": "messagingListMessages", "tags": [ "messaging" ], - "description": "Get a provider by its unique ID.\n", + "description": "Get a list of all messages from the current Appwrite project.", "responses": { "200": { - "description": "Provider", + "description": "Message list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/messageList" } } } @@ -36018,23 +34974,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getProvider", - "group": "providers", - "weight": 130, + "method": "listMessages", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/get-provider.md", + "demo": "messaging\/list-messages.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "messages.read", "platforms": [ "console", "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\/messaging\/list-messages.md", "auth": { "Project": [] } @@ -36047,48 +35002,81 @@ ], "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: 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": "<PROVIDER_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" } ] - }, - "delete": { - "summary": "Delete provider", - "operationId": "messagingDeleteProvider", - "tags": [ - "messaging" - ], - "description": "Delete a provider by its unique ID.", + } + }, + "\/messaging\/messages\/email": { + "post": { + "summary": "Create email", + "operationId": "messagingCreateEmail", + "tags": [ + "messaging" + ], + "description": "Create a new email message.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteProvider", - "group": "providers", - "weight": 142, + "method": "createEmail", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/delete-provider.md", + "demo": "messaging\/create-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "messages.write", "platforms": [ "console", "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\/messaging\/create-email.md", "auth": { "Project": [] } @@ -36099,35 +35087,127 @@ "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": { + "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.", + "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.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "messageId", + "subject", + "content" + ] + } + } } - ] + } } }, - "\/messaging\/providers\/{providerId}\/logs": { - "get": { - "summary": "List provider logs", - "operationId": "messagingListProviderLogs", + "\/messaging\/messages\/email\/{messageId}": { + "patch": { + "summary": "Update email", + "operationId": "messagingUpdateEmail", "tags": [ "messaging" ], - "description": "Get the provider activity logs listed by its unique ID.", + "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": "Logs List", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/message" } } } @@ -36135,23 +35215,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listProviderLogs", - "group": "providers", - "weight": 129, + "method": "updateEmail", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/list-provider-logs.md", + "demo": "messaging\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "messages.write", "platforms": [ "console", "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\/messaging\/update-email.md", "auth": { "Project": [] } @@ -36164,57 +35243,129 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "messageId", + "description": "Message ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_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, - "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": { + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "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\/subscribers\/{subscriberId}\/logs": { - "get": { - "summary": "List subscriber logs", - "operationId": "messagingListSubscriberLogs", + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", "tags": [ "messaging" ], - "description": "Get the subscriber activity logs listed by its unique ID.", + "description": "Create a new push notification.", "responses": { - "200": { - "description": "Logs List", + "201": { + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/message" } } } @@ -36222,23 +35373,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSubscriberLogs", - "group": "subscribers", - "weight": 151, + "method": "createPush", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/list-subscriber-logs.md", + "demo": "messaging\/create-push.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-subscriber-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", "auth": { "Project": [] } @@ -36249,59 +35399,166 @@ "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" + "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.", + "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.", + "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.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "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" + } + }, + "required": [ + "messageId" + ] + } + } } - ] + } } }, - "\/messaging\/topics": { - "get": { - "summary": "List topics", - "operationId": "messagingListTopics", + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", "tags": [ "messaging" ], - "description": "Get a list of all topics from the current Appwrite project.", + "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": "Topic list", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topicList" + "$ref": "#\/components\/schemas\/message" } } } @@ -36309,23 +35566,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTopics", - "group": "topics", - "weight": 144, + "method": "updatePush", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/list-topics.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-topics.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", "auth": { "Project": [] } @@ -36338,80 +35594,261 @@ ], "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": "messageId", + "description": "Message 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": "<MESSAGE_ID>" }, - "in": "query" + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "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-nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/sms": { "post": { - "summary": "Create topic", - "operationId": "messagingCreateTopic", + "summary": "Create SMS", + "operationId": "messagingCreateSms", "tags": [ "messaging" ], - "description": "Create a new topic.", + "description": "Create a new SMS message.", "responses": { "201": { - "description": "Topic", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/message" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createTopic", - "group": "topics", - "weight": 143, + "method": "createSms", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/create-topic.md", + "demo": "messaging\/create-sms.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", + "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 + } + ], "auth": { "Project": [] } @@ -36428,28 +35865,60 @@ "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": { + "content": { "type": "string", - "description": "Topic Name.", - "x-example": "<NAME>" + "description": "SMS Content.", + "x-example": "<CONTENT>" }, - "subscribe": { + "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.", + "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.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true } }, "required": [ - "topicId", - "name" + "messageId", + "content" ] } } @@ -36457,45 +35926,112 @@ } } }, - "\/messaging\/topics\/{topicId}": { - "get": { - "summary": "Get topic", - "operationId": "messagingGetTopic", + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", "tags": [ "messaging" ], - "description": "Get a topic by its unique ID.\n", + "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": "Topic", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/message" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getTopic", - "group": "topics", - "weight": 146, + "method": "updateSms", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/get-topic.md", + "demo": "messaging\/update-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\/get-topic.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": [] } @@ -36508,31 +36044,90 @@ ], "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 + }, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/{messageId}": { + "get": { + "summary": "Get message", + "operationId": "messagingGetMessage", "tags": [ "messaging" ], - "description": "Update a topic by its unique ID.\n", + "description": "Get a message by its unique ID.\n", "responses": { "200": { - "description": "Topic", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/message" } } } @@ -36540,23 +36135,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTopic", - "group": "topics", - "weight": 147, + "method": "getMessage", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/update-topic.md", + "demo": "messaging\/get-message.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "messages.read", "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\/get-message.md", "auth": { "Project": [] } @@ -36569,50 +36163,24 @@ ], "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" } + ] + }, + "delete": { + "summary": "Delete message", + "operationId": "messagingDelete", + "tags": [ + "messaging" ], - "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.", + "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" @@ -36620,23 +36188,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteTopic", - "group": "topics", - "weight": 148, + "method": "delete", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/delete-topic.md", + "demo": "messaging\/delete.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\/delete-message.md", "auth": { "Project": [] } @@ -36649,26 +36216,26 @@ ], "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" } ] } }, - "\/messaging\/topics\/{topicId}\/logs": { + "\/messaging\/messages\/{messageId}\/logs": { "get": { - "summary": "List topic logs", - "operationId": "messagingListTopicLogs", + "summary": "List message logs", + "operationId": "messagingListMessageLogs", "tags": [ "messaging" ], - "description": "Get the topic activity logs listed by its unique ID.", + "description": "Get the message activity logs listed by its unique ID.", "responses": { "200": { "description": "Logs List", @@ -36683,23 +36250,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTopicLogs", - "group": "topics", - "weight": 145, + "method": "listMessageLogs", + "group": "logs", "cookies": false, "type": "", - "demo": "messaging\/list-topic-logs.md", + "demo": "messaging\/list-message-logs.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-topic-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-logs.md", "auth": { "Project": [] } @@ -36712,12 +36278,12 @@ ], "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" }, @@ -36748,21 +36314,21 @@ ] } }, - "\/messaging\/topics\/{topicId}\/subscribers": { + "\/messaging\/messages\/{messageId}\/targets": { "get": { - "summary": "List subscribers", - "operationId": "messagingListSubscribers", + "summary": "List message targets", + "operationId": "messagingListTargets", "tags": [ "messaging" ], - "description": "Get a list of all subscribers from the current Appwrite project.", + "description": "Get a list of the targets associated with a message.", "responses": { "200": { - "description": "Subscriber list", + "description": "Target list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriberList" + "$ref": "#\/components\/schemas\/targetList" } } } @@ -36770,23 +36336,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSubscribers", - "group": "subscribers", - "weight": 150, + "method": "listTargets", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/list-subscribers.md", + "demo": "messaging\/list-targets.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\/list-subscribers.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", "auth": { "Project": [] } @@ -36799,18 +36364,18 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "messageId", + "description": "Message ID.", "required": true, "schema": { "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). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, 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. You may filter on the following attributes: userId, providerId, identifier, providerType", "required": false, "schema": { "type": "array", @@ -36821,17 +36386,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.", @@ -36844,113 +36398,23 @@ "in": "query" } ] - }, - "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": 149, - "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": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", - "required": true, - "schema": { - "type": "string", - "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" - ] - } - } - } - } } }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "\/messaging\/providers": { "get": { - "summary": "Get subscriber", - "operationId": "messagingGetSubscriber", + "summary": "List providers", + "operationId": "messagingListProviders", "tags": [ "messaging" ], - "description": "Get a subscriber by its unique ID.\n", + "description": "Get a list of all providers from the current Appwrite project.", "responses": { "200": { - "description": "Subscriber", + "description": "Provider list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriber" + "$ref": "#\/components\/schemas\/providerList" } } } @@ -36958,89 +36422,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getSubscriber", - "group": "subscribers", - "weight": 152, - "cookies": false, - "type": "", - "demo": "messaging\/get-subscriber.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\/get-subscriber.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "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.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SUBSCRIBER_ID>" - }, - "in": "path" - } - ] - }, - "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": 153, + "method": "listProviders", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/delete-subscriber.md", + "demo": "messaging\/list-providers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "providers.read", "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\/list-providers.md", "auth": { "Project": [] } @@ -37048,86 +36445,13 @@ "security": [ { "Project": [], - "JWT": [], - "Session": [], "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.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SUBSCRIBER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/migrations": { - "get": { - "summary": "List migrations", - "operationId": "migrationsList", - "tags": [ - "migrations" - ], - "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": "Migrations List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migrationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "list", - "group": null, - "weight": 583, - "cookies": false, - "type": "", - "demo": "migrations\/list.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\/list-migrations.md", - "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: 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). 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", @@ -37163,51 +36487,124 @@ ] } }, - "\/migrations\/appwrite": { + "\/messaging\/providers\/apns": { "post": { - "summary": "Create Appwrite migration", - "operationId": "migrationsCreateAppwriteMigration", + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", "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": "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": "createAppwriteMigration", - "group": null, - "weight": 587, + "method": "createApnsProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-appwrite-migration.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-appwrite.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": { @@ -37216,79 +36613,56 @@ "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", - "documentsdb", - "vectorsdb", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "provider", - "topic", - "subscriber", - "message", - "site", - "site-deployment", - "site-variable", - "platform", - "backup-policy" - ], - "x-enum-name": "AppwriteMigrationResource", - "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>" }, - "endpoint": { + "name": { "type": "string", - "description": "Source Appwrite endpoint", - "x-example": "https:\/\/example.com", - "format": "url" + "description": "Provider name.", + "x-example": "<NAME>" }, - "projectId": { + "authKey": { "type": "string", - "description": "Source Project ID", - "x-example": "<PROJECT_ID>" + "description": "APNS authentication key.", + "default": "", + "x-example": "<AUTH_KEY>" }, - "apiKey": { + "authKeyId": { "type": "string", - "description": "Source API Key", - "x-example": "<API_KEY>" + "description": "APNS authentication key ID.", + "default": "", + "x-example": "<AUTH_KEY_ID>" }, - "onDuplicate": { + "teamId": { "type": "string", - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "x-example": "fail", - "enum": [ - "fail", - "skip", - "overwrite" - ], - "x-enum-name": null, - "x-enum-keys": [] + "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.", + "x-example": false, + "x-nullable": true } }, "required": [ - "resources", - "endpoint", - "projectId", - "apiKey" + "providerId", + "name" ] } } @@ -37296,176 +36670,134 @@ } } }, - "\/migrations\/appwrite\/report": { - "get": { - "summary": "Get Appwrite migration report", - "operationId": "migrationsGetAppwriteReport", + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", "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": "Update a Apple Push Notification service 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": "getAppwriteReport", - "group": null, - "weight": 1081, + "method": "updateApnsProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/get-appwrite-report.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-appwrite-report.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": [] } ], "parameters": [ { - "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", - "vectorsdb", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "provider", - "topic", - "subscriber", - "message", - "site", - "site-deployment", - "site-variable", - "platform", - "backup-policy" - ], - "x-enum-name": "AppwriteMigrationResource", - "x-enum-keys": [] - } - }, - "in": "query" - }, - { - "name": "endpoint", - "description": "Source's Appwrite Endpoint", - "required": true, - "schema": { - "type": "string", - "format": "url", - "x-example": "https:\/\/example.com" - }, - "in": "query" - }, - { - "name": "projectID", - "description": "Source's Project ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "query" - }, - { - "name": "key", - "description": "Source's API Key", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY>" + "x-example": "<PROVIDER_ID>" }, - "in": "query" - } - ] - } - }, - "\/migrations\/csv\/exports": { - "post": { - "summary": "Export documents to CSV", - "operationId": "migrationsCreateCSVExport", - "tags": [ - "migrations" - ], - "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": { - "202": { - "description": "Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migration" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createCSVExport", - "group": null, - "weight": 596, - "cookies": false, - "type": "", - "demo": "migrations\/create-csv-export.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-csv-export.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] + "in": "path" } ], "requestBody": { @@ -37474,113 +36806,165 @@ "schema": { "type": "object", "properties": { - "resourceId": { - "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", - "x-example": "<ID1:ID2>" - }, - "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.", + "default": "", + "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" - } + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true }, - "delimiter": { + "authKey": { "type": "string", - "description": "The character that separates each column value. Default is comma.", - "x-example": "<DELIMITER>" + "description": "APNS authentication key.", + "default": "", + "x-example": "<AUTH_KEY>" }, - "enclosure": { + "authKeyId": { "type": "string", - "description": "The character that encloses each column value. Default is double quotes.", - "x-example": "<ENCLOSURE>" + "description": "APNS authentication key ID.", + "default": "", + "x-example": "<AUTH_KEY_ID>" }, - "escape": { + "teamId": { "type": "string", - "description": "The escape character for the enclosure character. Default is double quotes.", - "x-example": "<ESCAPE>" + "description": "APNS team ID.", + "default": "", + "x-example": "<TEAM_ID>" }, - "header": { - "type": "boolean", - "description": "Whether to include the header row with column names. Default is true.", - "x-example": false + "bundleId": { + "type": "string", + "description": "APNS bundle ID.", + "default": "", + "x-example": "<BUNDLE_ID>" }, - "notify": { + "sandbox": { "type": "boolean", - "description": "Set to true to receive an email when the export is complete. Default is true.", - "x-example": false + "description": "Use APNS sandbox environment.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "resourceId", - "filename" - ] + } } } } } } }, - "\/migrations\/csv\/imports": { + "\/messaging\/providers\/fcm": { "post": { - "summary": "Import documents from a CSV", - "operationId": "migrationsCreateCSVImport", + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", "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": "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": "createCSVImport", - "group": null, - "weight": 595, + "method": "createFcmProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-csv-import.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-csv-import.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": { @@ -37589,43 +36973,32 @@ "schema": { "type": "object", "properties": { - "bucketId": { + "providerId": { "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>" + "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>" }, - "fileId": { + "name": { "type": "string", - "description": "File ID.", - "x-example": "<FILE_ID>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "resourceId": { - "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", - "x-example": "<ID1:ID2>" + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "x-example": "{}", + "x-nullable": true }, - "internalFile": { + "enabled": { "type": "boolean", - "description": "Is the file stored in an internal bucket?", - "x-example": false - }, - "onDuplicate": { - "type": "string", - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "x-example": "fail", - "enum": [ - "fail", - "skip", - "overwrite" - ], - "x-enum-name": null, - "x-enum-keys": [] + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true } }, "required": [ - "bucketId", - "fileId", - "resourceId" + "providerId", + "name" ] } } @@ -37633,51 +37006,126 @@ } } }, - "\/migrations\/firebase": { - "post": { - "summary": "Create Firebase migration", - "operationId": "migrationsCreateFirebaseMigration", + "\/messaging\/providers\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", "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": "Update a Firebase Cloud Messaging 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": "createFirebaseMigration", - "group": null, - "weight": 589, + "method": "updateFcmProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-firebase-migration.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.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": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" } ], "requestBody": { @@ -37686,59 +37134,46 @@ "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": "FirebaseMigrationResource", - "x-enum-keys": [] - } - }, - "serviceAccount": { + "name": { "type": "string", - "description": "JSON of the Firebase service account credentials", - "x-example": "<SERVICE_ACCOUNT>" + "description": "Provider name.", + "default": "", + "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 } - }, - "required": [ - "resources", - "serviceAccount" - ] + } } } } } } }, - "\/migrations\/firebase\/report": { - "get": { - "summary": "Get Firebase migration report", - "operationId": "migrationsGetFirebaseReport", + "\/messaging\/providers\/mailgun": { + "post": { + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", "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": "Create a new Mailgun provider.", "responses": { - "200": { - "description": "Migration Report", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationReport" + "$ref": "#\/components\/schemas\/provider" } } } @@ -37746,86 +37181,124 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFirebaseReport", - "group": null, - "weight": 590, + "method": "createMailgunProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/get-firebase-report.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-firebase-report.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-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", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": "FirebaseMigrationResource", - "x-enum-keys": [] + "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.", + "default": "", + "x-example": "<API_KEY>" + }, + "domain": { + "type": "string", + "description": "Mailgun Domain.", + "default": "", + "x-example": "<DOMAIN>" + }, + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "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.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] } - }, - "in": "query" - }, - { - "name": "serviceAccount", - "description": "JSON of the Firebase service account credentials", - "required": true, - "schema": { - "type": "string", - "x-example": "<SERVICE_ACCOUNT>" - }, - "in": "query" + } } - ] + } } }, - "\/migrations\/json\/exports": { - "post": { - "summary": "Export documents to JSON", - "operationId": "migrationsCreateJSONExport", + "\/messaging\/providers\/mailgun\/{providerId}": { + "patch": { + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", "tags": [ - "migrations" + "messaging" ], - "description": "Export documents to a JSON file from your Appwrite database. This endpoint allows you to export documents to a JSON file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.\n", + "description": "Update a Mailgun provider by its unique ID.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/provider" } } } @@ -37833,29 +37306,42 @@ }, "deprecated": false, "x-appwrite": { - "method": "createJSONExport", - "group": null, - "weight": 598, + "method": "updateMailgunProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-json-export.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-json-export.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-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": { @@ -37864,63 +37350,83 @@ "schema": { "type": "object", "properties": { - "resourceId": { + "name": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", - "x-example": "<ID1:ID2>" + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "filename": { + "apiKey": { "type": "string", - "description": "The name of the file to be created for the export, excluding the .json extension.", - "x-example": "<FILENAME>" + "description": "Mailgun API Key.", + "default": "", + "x-example": "<API_KEY>" }, - "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" - } + "domain": { + "type": "string", + "description": "Mailgun Domain.", + "default": "", + "x-example": "<DOMAIN>" }, - "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" - } + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "x-example": false, + "x-nullable": true }, - "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 + }, + "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>" } - }, - "required": [ - "resourceId", - "filename" - ] + } } } } } } }, - "\/migrations\/json\/imports": { + "\/messaging\/providers\/msg91": { "post": { - "summary": "Import documents from a JSON", - "operationId": "migrationsCreateJSONImport", + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", "tags": [ - "migrations" + "messaging" ], - "description": "Import documents from a JSON file into your Appwrite database. This endpoint allows you to import documents from a JSON file uploaded to Appwrite Storage bucket.\n", + "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" } } } @@ -37928,29 +37434,30 @@ }, "deprecated": false, "x-appwrite": { - "method": "createJSONImport", - "group": null, - "weight": 597, + "method": "createMsg91Provider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-json-import.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-json-import.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "requestBody": { @@ -37959,43 +37466,44 @@ "schema": { "type": "object", "properties": { - "bucketId": { + "providerId": { "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>" + "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>" }, - "fileId": { + "name": { "type": "string", - "description": "File ID.", - "x-example": "<FILE_ID>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "resourceId": { + "templateId": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", - "x-example": "<ID1:ID2>" + "description": "Msg91 template ID", + "default": "", + "x-example": "<TEMPLATE_ID>" }, - "internalFile": { - "type": "boolean", - "description": "Is the file stored in an internal bucket?", - "x-example": false + "senderId": { + "type": "string", + "description": "Msg91 sender ID.", + "default": "", + "x-example": "<SENDER_ID>" }, - "onDuplicate": { + "authKey": { "type": "string", - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "x-example": "fail", - "enum": [ - "fail", - "skip", - "overwrite" - ], - "x-enum-name": null, - "x-enum-keys": [] + "description": "Msg91 auth key.", + "default": "", + "x-example": "<AUTH_KEY>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true } }, "required": [ - "bucketId", - "fileId", - "resourceId" + "providerId", + "name" ] } } @@ -38003,21 +37511,21 @@ } } }, - "\/migrations\/nhost": { - "post": { - "summary": "Create NHost migration", - "operationId": "migrationsCreateNHostMigration", + "\/messaging\/providers\/msg91\/{providerId}": { + "patch": { + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", "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": "Update a MSG91 provider by its unique ID.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/provider" } } } @@ -38025,29 +37533,42 @@ }, "deprecated": false, "x-appwrite": { - "method": "createNHostMigration", - "group": null, - "weight": 593, + "method": "updateMsg91Provider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-n-host-migration.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-nhost.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-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": { @@ -38056,74 +37577,149 @@ "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": [] - } + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "subdomain": { + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "templateId": { "type": "string", - "description": "Source's Subdomain", - "x-example": "<SUBDOMAIN>" + "description": "Msg91 template ID.", + "default": "", + "x-example": "<TEMPLATE_ID>" }, - "region": { + "senderId": { "type": "string", - "description": "Source's Region", - "x-example": "<REGION>" + "description": "Msg91 sender ID.", + "default": "", + "x-example": "<SENDER_ID>" }, - "adminSecret": { + "authKey": { "type": "string", - "description": "Source's Admin Secret", - "x-example": "<ADMIN_SECRET>" + "description": "Msg91 auth key.", + "default": "", + "x-example": "<AUTH_KEY>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/resend": { + "post": { + "summary": "Create Resend provider", + "operationId": "messagingCreateResendProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Resend provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createResendProvider", + "group": "providers", + "cookies": false, + "type": "", + "demo": "messaging\/create-resend-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-resend-provider.md", + "auth": { + "Project": [] + } + }, + "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>" }, - "database": { + "name": { "type": "string", - "description": "Source's Database Name", - "x-example": "<DATABASE>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "username": { + "apiKey": { "type": "string", - "description": "Source's Database Username", - "x-example": "<USERNAME>" + "description": "Resend API key.", + "default": "", + "x-example": "<API_KEY>" }, - "password": { + "fromName": { "type": "string", - "description": "Source's Database Password", - "x-example": "<PASSWORD>" + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" }, - "port": { - "type": "integer", - "description": "Source's Database Port", - "x-example": null, - "format": "int32" + "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.", + "x-example": false, + "x-nullable": true } }, "required": [ - "resources", - "subdomain", - "region", - "adminSecret", - "database", - "username", - "password" + "providerId", + "name" ] } } @@ -38131,21 +37727,21 @@ } } }, - "\/migrations\/nhost\/report": { - "get": { - "summary": "Get NHost migration report", - "operationId": "migrationsGetNHostReport", + "\/messaging\/providers\/resend\/{providerId}": { + "patch": { + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", "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 Resend provider by its unique ID.", "responses": { "200": { - "description": "Migration Report", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationReport" + "$ref": "#\/components\/schemas\/provider" } } } @@ -38153,148 +37749,115 @@ }, "deprecated": false, "x-appwrite": { - "method": "getNHostReport", - "group": null, - "weight": 594, + "method": "updateResendProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/get-n-host-report.md", + "demo": "messaging\/update-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\/migration-nhost-report.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-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": "NHostMigrationResource", - "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.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "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>" + } + } + } + } + } + } } }, - "\/migrations\/supabase": { + "\/messaging\/providers\/sendgrid": { "post": { - "summary": "Create Supabase migration", - "operationId": "migrationsCreateSupabaseMigration", + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", "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 Sendgrid provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/provider" } } } @@ -38302,29 +37865,30 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSupabaseMigration", - "group": null, - "weight": 591, + "method": "createSendgridProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-supabase-migration.md", + "demo": "messaging\/create-sendgrid-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-sendgrid-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "requestBody": { @@ -38333,69 +37897,58 @@ "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": "SupabaseMigrationResource", - "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>" }, - "endpoint": { + "name": { "type": "string", - "description": "Source's Supabase Endpoint", - "x-example": "https:\/\/example.com", - "format": "url" + "description": "Provider name.", + "x-example": "<NAME>" }, "apiKey": { "type": "string", - "description": "Source's API Key", + "description": "Sendgrid API key.", + "default": "", "x-example": "<API_KEY>" }, - "databaseHost": { + "fromName": { "type": "string", - "description": "Source's Database Host", - "x-example": "<DATABASE_HOST>" + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" }, - "username": { + "fromEmail": { "type": "string", - "description": "Source's Database Username", - "x-example": "<USERNAME>" + "description": "Sender email address.", + "default": "", + "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.", + "default": "", + "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.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true } }, "required": [ - "resources", - "endpoint", - "apiKey", - "databaseHost", - "username", - "password" + "providerId", + "name" ] } } @@ -38403,21 +37956,21 @@ } } }, - "\/migrations\/supabase\/report": { - "get": { - "summary": "Get Supabase migration report", - "operationId": "migrationsGetSupabaseReport", + "\/messaging\/providers\/sendgrid\/{providerId}": { + "patch": { + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", "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 Sendgrid provider by its unique ID.", "responses": { "200": { - "description": "Migration Report", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationReport" + "$ref": "#\/components\/schemas\/provider" } } } @@ -38425,391 +37978,596 @@ }, "deprecated": false, "x-appwrite": { - "method": "getSupabaseReport", - "group": null, - "weight": 592, + "method": "updateSendgridProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/get-supabase-report.md", + "demo": "messaging\/update-sendgrid-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-sendgrid-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": "SupabaseMigrationResource", - "x-enum-keys": [] - } - }, - "in": "query" - }, - { - "name": "endpoint", - "description": "Source's Supabase Endpoint.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "format": "url", - "x-example": "https:\/\/example.com" + "x-example": "<PROVIDER_ID>" }, - "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" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "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>" + } + } + } + } + } + } } }, - "\/migrations\/{migrationId}": { - "get": { - "summary": "Get migration", - "operationId": "migrationsGet", + "\/messaging\/providers\/smtp": { + "post": { + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", "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 SMTP provider.", "responses": { - "200": { - "description": "Migration", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "get", - "group": null, - "weight": 584, + "method": "createSmtpProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/get.md", + "demo": "messaging\/create-smtp-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", + "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": "migrationId", - "description": "Migration unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MIGRATION_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.", + "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'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption" + }, + "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.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name", + "host" + ] + } + } } - ] - }, + } + } + }, + "\/messaging\/providers\/smtp\/{providerId}": { "patch": { - "summary": "Update retry migration", - "operationId": "migrationsRetry", + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", "tags": [ - "migrations" + "messaging" ], - "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", + "description": "Update a SMTP 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": "retry", - "group": null, - "weight": 585, + "method": "updateSmtpProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/retry.md", + "demo": "messaging\/update-smtp-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", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "migrationId", - "description": "Migration unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MIGRATION_ID>" + "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" + } }, - "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": 586, - "cookies": false, - "type": "", - "demo": "migrations\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" + { + "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 + } ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/delete-migration.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "migrationId", - "description": "Migration ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MIGRATION_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } - ] - } - }, - "\/organizations": { - "get": { - "summary": "List Orgnizations", - "operationId": "organizationsList", - "tags": [ - "organizations" ], - "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": "Organizations list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organizationList" + "requestBody": { + "content": { + "application\/json": { + "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.", + "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'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption" + }, + "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.", + "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.", + "x-example": false, + "x-nullable": true + } } } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "list", - "group": null, - "weight": 1009, - "cookies": false, - "type": "", - "demo": "organizations\/list.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\/references\/teams\/list-teams.md", - "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\/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, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - } - ] - }, + } + } + }, + "\/messaging\/providers\/telesign": { "post": { - "summary": "Create Organization", - "operationId": "organizationsCreate", + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Create a new organization.\n", + "description": "Create a new Telesign 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" } } } @@ -38817,29 +38575,30 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": null, - "weight": 1008, + "method": "createTelesignProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/create.md", - "rate-limit": 10, + "demo": "messaging\/create-telesign-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-telesign-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "requestBody": { @@ -38848,76 +38607,45 @@ "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": { - "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": { + "from": { "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 Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" }, - "couponId": { + "customerId": { "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", - "x-nullable": true + "description": "Telesign customer ID.", + "default": "", + "x-example": "<CUSTOMER_ID>" }, - "taxId": { + "apiKey": { "type": "string", - "description": "Tax Id associated to billing.", - "x-example": "<TAX_ID>", - "x-nullable": true + "description": "Telesign API key.", + "default": "", + "x-example": "<API_KEY>" }, - "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" ] } } @@ -38925,21 +38653,21 @@ } } }, - "\/organizations\/estimations\/create-organization": { + "\/messaging\/providers\/telesign\/{providerId}": { "patch": { - "summary": "Estimate create Organization", - "operationId": "organizationsEstimationCreateOrganization", + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Get estimation for creating an organization.", + "description": "Update a Telesign provider by its unique ID.", "responses": { "200": { - "description": "Estimation", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/estimation" + "$ref": "#\/components\/schemas\/provider" } } } @@ -38947,29 +38675,42 @@ }, "deprecated": false, "x-appwrite": { - "method": "estimationCreateOrganization", - "group": null, - "weight": 1043, + "method": "updateTelesignProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/estimation-create-organization.md", - "rate-limit": 10, + "demo": "messaging\/update-telesign-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-telesign-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": { @@ -38978,121 +38719,158 @@ "schema": { "type": "object", "properties": { - "billingPlan": { + "name": { "type": "string", - "description": "Organization billing plan chosen", - "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.", - "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" - } + "customerId": { + "type": "string", + "description": "Telesign customer ID.", + "default": "", + "x-example": "<CUSTOMER_ID>" }, - "couponId": { + "apiKey": { "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", - "x-nullable": true + "description": "Telesign API key.", + "default": "", + "x-example": "<API_KEY>" }, - "platform": { + "from": { "type": "string", - "description": "Platform type", - "x-example": "appwrite", - "enum": [ - "appwrite", - "imagine" - ], - "x-enum-name": null, - "x-enum-keys": [] + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } - }, - "required": [ - "billingPlan" - ] + } } } } } } }, - "\/organizations\/{organizationId}": { - "delete": { - "summary": "Delete team", - "operationId": "organizationsDelete", + "\/messaging\/providers\/textmagic": { + "post": { + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Delete an organization.", + "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": "delete", - "group": null, - "weight": 1010, + "method": "createTextmagicProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/delete.md", + "demo": "messaging\/create-textmagic-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", + "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": "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>" + }, + "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.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/addons": { - "get": { - "summary": "List addons", - "operationId": "organizationsListAddons", + "\/messaging\/providers\/textmagic\/{providerId}": { + "patch": { + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", "tags": [ - "organizations" + "messaging" ], - "description": "List all billing addons for an organization.\n", + "description": "Update a Textmagic provider by its unique ID.", "responses": { "200": { - "description": "Addons list", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addonList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -39100,121 +38878,202 @@ }, "deprecated": false, "x-appwrite": { - "method": "listAddons", - "group": null, - "weight": 1051, + "method": "updateTextmagicProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/list-addons.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\/list-addons.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, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } - ] - } - }, - "\/organizations\/{organizationId}\/addons\/baa": { - "post": { - "summary": "Create BAA addon", - "operationId": "organizationsCreateBaaAddon", - "tags": [ - "organizations" ], - "description": "Create the BAA billing addon for an organization.\n", - "responses": { - "201": { - "description": "Addon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/addon" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createBaaAddon", - "group": null, - "weight": 1054, - "cookies": false, - "type": "", - "demo": "organizations\/create-baa-addon.md", - "rate-limit": 10, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "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", + "tags": [ + "messaging" + ], + "description": "Create a new Twilio provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTwilioProvider", + "group": "providers", + "cookies": false, + "type": "", + "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\/create-baa-addon.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, - "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.", + "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.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/addons\/{addonId}": { - "get": { - "summary": "Get addon", - "operationId": "organizationsGetAddon", + "\/messaging\/providers\/twilio\/{providerId}": { + "patch": { + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Get the details of a billing addon for an organization.\n", + "description": "Update a Twilio provider by its unique ID.", "responses": { "200": { - "description": "Addon", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addon" + "$ref": "#\/components\/schemas\/provider" } } } @@ -39222,132 +39081,202 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAddon", - "group": null, - "weight": 1052, + "method": "updateTwilioProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/get-addon.md", + "demo": "messaging\/update-twilio-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-addon.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 ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<ADDON_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } - ] - }, - "delete": { - "summary": "Delete addon", - "operationId": "organizationsDeleteAddon", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "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", "tags": [ - "organizations" + "messaging" ], - "description": "Delete a billing addon for an organization.\n", + "description": "Create a new Vonage provider.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteAddon", - "group": null, - "weight": 1055, + "method": "createVonageProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/delete-addon.md", - "rate-limit": 10, + "demo": "messaging\/create-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\/delete-addon.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": "addonId", - "description": "Addon ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ADDON_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.", + "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.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/addons\/{addonId}\/confirmations": { - "post": { - "summary": "Confirm addon payment after 3DS authentication", - "operationId": "organizationsConfirmAddonPayment", + "\/messaging\/providers\/vonage\/{providerId}": { + "patch": { + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Confirm payment for a billing addon for an organization.\n", + "description": "Update a Vonage provider by its unique ID.", "responses": { "200": { - "description": "Addon", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addon" + "$ref": "#\/components\/schemas\/provider" } } } @@ -39355,70 +39284,102 @@ }, "deprecated": false, "x-appwrite": { - "method": "confirmAddonPayment", - "group": null, - "weight": 1056, + "method": "updateVonageProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/confirm-addon-payment.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\/confirm-addon-payment.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", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "addonId", - "description": "Addon ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<ADDON_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "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>" + } + } + } + } + } + } } }, - "\/organizations\/{organizationId}\/addons\/{addon}\/price": { + "\/messaging\/providers\/{providerId}": { "get": { - "summary": "Get addon price", - "operationId": "organizationsGetAddonPrice", + "summary": "Get provider", + "operationId": "messagingGetProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Get the price details for a billing addon for an organization.\n", + "description": "Get a provider by its unique ID.\n", "responses": { "200": { - "description": "AddonPrice", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/addonPrice" + "$ref": "#\/components\/schemas\/provider" } } } @@ -39426,149 +39387,114 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAddonPrice", - "group": null, - "weight": 1053, + "method": "getProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/get-addon-price.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-addon-price.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", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "addon", - "description": "Addon key identifier (e.g. baa).", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "baa", - "enum": [ - "baa" - ], - "x-enum-name": null, - "x-enum-keys": [] + "x-example": "<PROVIDER_ID>" }, "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/aggregations": { - "get": { - "summary": "List aggregations", - "operationId": "organizationsListAggregations", + }, + "delete": { + "summary": "Delete provider", + "operationId": "messagingDeleteProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Get a list of all aggregations for an organization.", + "description": "Delete a provider by its unique ID.", "responses": { - "200": { - "description": "Aggregation team list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/aggregationTeamList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listAggregations", - "group": null, - "weight": 1025, + "method": "deleteProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/list-aggregations.md", + "demo": "messaging\/delete-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", + "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, + "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" } ] } }, - "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { + "\/messaging\/providers\/{providerId}\/logs": { "get": { - "summary": "Get aggregation", - "operationId": "organizationsGetAggregation", + "summary": "List provider logs", + "operationId": "messagingListProviderLogs", "tags": [ - "organizations" + "messaging" ], - "description": "Get a specific aggregation using it's aggregation ID.", + "description": "Get the provider activity logs listed by its unique ID.", "responses": { "200": { - "description": "AggregationTeam", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/aggregationTeam" + "$ref": "#\/components\/schemas\/logList" } } } @@ -39576,93 +39502,85 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAggregation", - "group": null, - "weight": 1026, + "method": "listProviderLogs", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/get-aggregation.md", + "demo": "messaging\/list-provider-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "providers.read", "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\/list-provider-logs.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", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<AGGREGATION_ID>" + "x-example": "<PROVIDER_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.", + "name": "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": "integer", - "format": "int32", - "x-example": 0, - "default": 5 + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, "in": "query" }, { - "name": "offset", - "description": "Offset value. The default value is 0. Use this param to manage pagination.", + "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", - "default": 0 + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] } }, - "\/organizations\/{organizationId}\/billing-address": { - "patch": { - "summary": "Set team's billing address", - "operationId": "organizationsSetBillingAddress", + "\/messaging\/subscribers\/{subscriberId}\/logs": { + "get": { + "summary": "List subscriber logs", + "operationId": "messagingListSubscriberLogs", "tags": [ - "organizations" + "messaging" ], - "description": "Set a billing address for an organization.", + "description": "Get the subscriber activity logs listed by its unique ID.", "responses": { "200": { - "description": "Organization", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/logList" } } } @@ -39670,131 +39588,170 @@ }, "deprecated": false, "x-appwrite": { - "method": "setBillingAddress", - "group": null, - "weight": 1018, + "method": "listSubscriberLogs", + "group": "subscribers", "cookies": false, "type": "", - "demo": "organizations\/set-billing-address.md", + "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\/set-billing-address.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, "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" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "billingAddressId": { - "type": "string", - "description": "Unique ID of billing address", - "x-example": "<BILLING_ADDRESS_ID>" - } - }, - "required": [ - "billingAddressId" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete team's billing address", - "operationId": "organizationsDeleteBillingAddress", + ] + } + }, + "\/messaging\/topics": { + "get": { + "summary": "List topics", + "operationId": "messagingListTopics", "tags": [ - "organizations" + "messaging" ], - "description": "Delete a team's billing address.", + "description": "Get a list of all topics from the current Appwrite project.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Topic list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topicList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBillingAddress", - "group": null, - "weight": 1019, + "method": "listTopics", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/delete-billing-address.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\/delete-billing-address.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" + "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}\/billing-addresses\/{billingAddressId}": { - "get": { - "summary": "Get billing address", - "operationId": "organizationsGetBillingAddress", + }, + "post": { + "summary": "Create topic", + "operationId": "messagingCreateTopic", "tags": [ - "organizations" + "messaging" ], - "description": "Get a billing address using it's ID.", + "description": "Create a new topic.", "responses": { - "200": { - "description": "BillingAddress", + "201": { + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/billingAddress" + "$ref": "#\/components\/schemas\/topic" } } } @@ -39802,70 +39759,85 @@ }, "deprecated": false, "x-appwrite": { - "method": "getBillingAddress", - "group": null, - "weight": 1017, + "method": "createTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/get-billing-address.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\/get-billing-address.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, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "billingAddressId", - "description": "Unique ID of billing address", - "required": true, - "schema": { - "type": "string", - "x-example": "<BILLING_ADDRESS_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topicId": { + "type": "string", + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "x-example": "<TOPIC_ID>" + }, + "name": { + "type": "string", + "description": "Topic Name.", + "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" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/billing-email": { - "patch": { - "summary": "Set team's billing email", - "operationId": "organizationsSetBillingEmail", + "\/messaging\/topics\/{topicId}": { + "get": { + "summary": "Get topic", + "operationId": "messagingGetTopic", "tags": [ - "organizations" + "messaging" ], - "description": "Set the current billing email for the organization.", + "description": "Get a topic by its unique ID.\n", "responses": { "200": { - "description": "Organization", + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/topic" } } } @@ -39873,80 +39845,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "setBillingEmail", - "group": null, - "weight": 1037, + "method": "getTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/set-billing-email.md", + "demo": "messaging\/get-topic.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\/set-billing-email.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" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "billingEmail": { - "type": "string", - "description": "Billing email for the organization.", - "x-example": "email@example.com", - "format": "email" - } - }, - "required": [ - "billingEmail" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/budget": { + ] + }, "patch": { - "summary": "Update organization budget", - "operationId": "organizationsUpdateBudget", + "summary": "Update topic", + "operationId": "messagingUpdateTopic", "tags": [ - "organizations" + "messaging" ], - "description": "Update the budget limit for an organization.", + "description": "Update a topic by its unique ID.\n", "responses": { "200": { - "description": "Organization", + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/topic" } } } @@ -39954,39 +39905,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBudget", - "group": null, - "weight": 1014, + "method": "updateTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/update-budget.md", + "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\/update-budget.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 Unique ID", + "name": "topicId", + "description": "Topic ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } @@ -39997,198 +39949,96 @@ "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": "Topic Name.", + "x-example": "<NAME>", "x-nullable": true }, - "alerts": { + "subscribe": { "type": "array", - "description": "Budget alert limit percentage", - "x-example": null, + "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": "integer" - } + "type": "string" + }, + "x-nullable": true } - }, - "required": [ - "budget" - ] + } } } } } - } - }, - "\/organizations\/{organizationId}\/credits": { - "get": { - "summary": "List credits", - "operationId": "organizationsListCredits", + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", "tags": [ - "organizations" + "messaging" ], - "description": "List all credits for an organization.\n", + "description": "Delete a topic by its unique ID.", "responses": { - "200": { - "description": "CreditList", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/creditList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listCredits", - "group": null, - "weight": 1029, + "method": "deleteTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/list-credits.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\/list-credits.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", + "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, couponId, credits, expiration, status", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" } ] - }, - "post": { - "summary": "Add credits from coupon", - "operationId": "organizationsAddCredit", - "tags": [ - "organizations" - ], - "description": "Add credit to an organization using a coupon.", - "responses": { - "201": { - "description": "Credit", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/credit" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "addCredit", - "group": null, - "weight": 1030, - "cookies": false, - "type": "", - "demo": "organizations\/add-credit.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\/add-credit.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "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": { - "couponId": { - "type": "string", - "description": "ID of the coupon", - "x-example": "<COUPON_ID>" - } - }, - "required": [ - "couponId" - ] - } - } - } - } } }, - "\/organizations\/{organizationId}\/credits\/available": { + "\/messaging\/topics\/{topicId}\/logs": { "get": { - "summary": "Get available credits", - "operationId": "organizationsGetAvailableCredits", + "summary": "List topic logs", + "operationId": "messagingListTopicLogs", "tags": [ - "organizations" + "messaging" ], - "description": "Get total available valid credits for an organization.", + "description": "Get the topic activity logs listed by its unique ID.", "responses": { "200": { - "description": "CreditAvailable", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/creditAvailable" + "$ref": "#\/components\/schemas\/logList" } } } @@ -40196,60 +40046,85 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAvailableCredits", - "group": null, - "weight": 1028, + "method": "listTopicLogs", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/get-available-credits.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-available-credits.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": "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}\/credits\/{creditId}": { + "\/messaging\/topics\/{topicId}\/subscribers": { "get": { - "summary": "Get credit details", - "operationId": "organizationsGetCredit", + "summary": "List subscribers", + "operationId": "messagingListSubscribers", "tags": [ - "organizations" + "messaging" ], - "description": "Get credit details.", + "description": "Get a list of all subscribers from the current Appwrite project.", "responses": { "200": { - "description": "Credit", + "description": "Subscriber list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/credit" + "$ref": "#\/components\/schemas\/subscriberList" } } } @@ -40257,131 +40132,94 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCredit", - "group": null, - "weight": 1027, + "method": "listSubscribers", + "group": "subscribers", "cookies": false, "type": "", - "demo": "organizations\/get-credit.md", + "demo": "messaging\/list-subscribers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "subscribers.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-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": "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). 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": "string", - "x-example": "<CREDIT_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/estimations\/delete-organization": { - "patch": { - "summary": "Estimate delete team", - "operationId": "organizationsEstimationDeleteOrganization", - "tags": [ - "organizations" - ], - "description": "Get estimation for deleting an organization.", - "responses": { - "200": { - "description": "EstimationDeleteOrganization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/estimationDeleteOrganization" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "estimationDeleteOrganization", - "group": null, - "weight": 1044, - "cookies": false, - "type": "", - "demo": "organizations\/estimation-delete-organization.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "organizations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-delete-organization.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ + "in": "query" + }, { - "name": "organizationId", - "description": "Team ID.", - "required": true, + "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" + "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", + }, + "post": { + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", "tags": [ - "organizations" + "messaging" ], - "description": "Get estimation for updating the organization plan.", + "description": "Create a new subscriber.", "responses": { - "200": { - "description": "EstimationUpdatePlan", + "201": { + "description": "Subscriber", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/estimationUpdatePlan" + "$ref": "#\/components\/schemas\/subscriber" } } } @@ -40389,39 +40227,44 @@ }, "deprecated": false, "x-appwrite": { - "method": "estimationUpdatePlan", - "group": null, - "weight": 1041, + "method": "createSubscriber", + "group": "subscribers", "cookies": false, "type": "", - "demo": "organizations\/estimation-update-plan.md", - "rate-limit": 10, + "demo": "messaging\/create-subscriber.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "subscribers.write", "platforms": [ - "console" + "server", + "client", + "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\/create-subscriber.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [], + "Session": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } @@ -40432,28 +40275,20 @@ "schema": { "type": "object", "properties": { - "billingPlan": { + "subscriberId": { "type": "string", - "description": "Organization billing plan chosen", - "x-example": "tier-0" - }, - "invites": { - "type": "array", - "description": "Additional member invites", - "x-example": null, - "items": { - "type": "string" - } + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "x-example": "<SUBSCRIBER_ID>" }, - "couponId": { + "targetId": { "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", - "x-nullable": true + "description": "Target ID. The target ID to link to the specified Topic ID.", + "x-example": "<TARGET_ID>" } }, "required": [ - "billingPlan" + "subscriberId", + "targetId" ] } } @@ -40461,21 +40296,21 @@ } } }, - "\/organizations\/{organizationId}\/feedbacks\/downgrade": { - "post": { - "summary": "Create downgrade feedback", - "operationId": "organizationsCreateDowngradeFeedback", + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "get": { + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", "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 subscriber by its unique ID.\n", "responses": { - "201": { - "description": "Downgrade Feedback", + "200": { + "description": "Subscriber", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/downgradeFeedback" + "$ref": "#\/components\/schemas\/subscriber" } } } @@ -40483,171 +40318,138 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDowngradeFeedback", - "group": null, - "weight": 1045, + "method": "getSubscriber", + "group": "subscribers", "cookies": false, "type": "", - "demo": "organizations\/create-downgrade-feedback.md", + "demo": "messaging\/get-subscriber.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\/create-downgrade-feedback.md", + "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": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SUBSCRIBER_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "reason": { - "type": "string", - "description": "Feedback reason", - "x-example": "<REASON>" - }, - "message": { - "type": "string", - "description": "Feedback message", - "x-example": "<MESSAGE>" - }, - "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": [ - "reason", - "message", - "fromPlanId", - "toPlanId" - ] - } - } - } - } - } - }, - "\/organizations\/{organizationId}\/invoices": { - "get": { - "summary": "List invoices", - "operationId": "organizationsListInvoices", + ] + }, + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", "tags": [ - "organizations" + "messaging" ], - "description": "List all invoices for an organization.", + "description": "Delete a subscriber by its unique ID.", "responses": { - "200": { - "description": "Billing invoices list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/invoiceList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listInvoices", - "group": null, - "weight": 1032, + "method": "deleteSubscriber", + "group": "subscribers", "cookies": false, "type": "", - "demo": "organizations\/list-invoices.md", + "demo": "messaging\/delete-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\/list-invoices.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [], + "Session": [], + "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": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, type, amount, currency, from, to, dueAt, attempts, status, grossAmount", - "required": false, + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<SUBSCRIBER_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { + "\/migrations": { "get": { - "summary": "Get invoice", - "operationId": "organizationsGetInvoice", + "summary": "List migrations", + "operationId": "migrationsList", "tags": [ - "organizations" + "migrations" ], - "description": "Get an invoice by its unique ID.", + "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": "Invoice", + "description": "Migrations List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/invoice" + "$ref": "#\/components\/schemas\/migrationList" } } } @@ -40655,22 +40457,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getInvoice", + "method": "list", "group": null, - "weight": 1031, "cookies": false, "type": "", - "demo": "organizations\/get-invoice.md", + "demo": "migrations\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "migrations.read", "platforms": [ "console" ], "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\/migrations\/list-migrations.md", "auth": { "Project": [] } @@ -40682,43 +40483,58 @@ ], "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\/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": "invoiceId", - "description": "Invoice 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": "<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}\/download": { - "get": { - "summary": "Download invoice in PDF", - "operationId": "organizationsGetInvoiceDownload", + "\/migrations\/appwrite": { + "post": { + "summary": "Create Appwrite migration", + "operationId": "migrationsCreateAppwriteMigration", "tags": [ - "organizations" + "migrations" ], - "description": "Download invoice in PDF", + "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": "paymentMethod", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" + "$ref": "#\/components\/schemas\/migration" } } } @@ -40726,22 +40542,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getInvoiceDownload", + "method": "createAppwriteMigration", "group": null, - "weight": 1035, "cookies": false, "type": "", - "demo": "organizations\/get-invoice-download.md", + "demo": "migrations\/create-appwrite-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-invoice-download.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite.md", "auth": { "Project": [] } @@ -40751,45 +40566,106 @@ "Project": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "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": { + "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", + "documentsdb", + "vectorsdb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "provider", + "topic", + "subscriber", + "message", + "site", + "site-deployment", + "site-variable", + "platform", + "backup-policy" + ], + "x-enum-name": "AppwriteMigrationResource" + } + }, + "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>" + }, + "onDuplicate": { + "type": "string", + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "default": "fail", + "x-example": "fail", + "enum": [ + "fail", + "skip", + "overwrite" + ], + "x-enum-name": "MigrationOnDuplicate" + } + }, + "required": [ + "resources", + "endpoint", + "projectId", + "apiKey" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { - "post": { - "summary": "Initiate payment for failed invoice to pay live from console", - "operationId": "organizationsCreateInvoicePayment", + "\/migrations\/appwrite\/report": { + "get": { + "summary": "Get Appwrite migration report", + "operationId": "migrationsGetAppwriteReport", "tags": [ - "organizations" + "migrations" ], - "description": "Initiate payment for failed invoice to pay live from console", + "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": "Invoice", + "description": "Migration Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/invoice" + "$ref": "#\/components\/schemas\/migrationReport" } } } @@ -40797,22 +40673,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createInvoicePayment", + "method": "getAppwriteReport", "group": null, - "weight": 1036, "cookies": false, "type": "", - "demo": "organizations\/create-invoice-payment.md", - "rate-limit": 10, - "rate-time": 86400, + "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\/create-invoice-payment.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite-report.md", "auth": { "Project": [] } @@ -40824,62 +40699,96 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization 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", + "vectorsdb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "provider", + "topic", + "subscriber", + "message", + "site", + "site-deployment", + "site-variable", + "platform", + "backup-policy" + ], + "x-enum-name": "AppwriteMigrationResource" + } + }, + "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": "invoiceId", - "description": "Invoice unique ID", + "name": "projectID", + "description": "Source's Project ID", "required": true, "schema": { "type": "string", - "x-example": "<INVOICE_ID>" + "x-example": "<PROJECT_ID>" }, - "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": "key", + "description": "Source's API Key", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY>" + }, + "in": "query" } - } + ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { - "patch": { - "summary": "Validate the payment for an invoice and update status", - "operationId": "organizationsValidateInvoice", + "\/migrations\/csv\/exports": { + "post": { + "summary": "Export documents to CSV", + "operationId": "migrationsCreateCSVExport", "tags": [ - "organizations" + "migrations" ], - "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", + "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": "Invoice", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/invoice" + "$ref": "#\/components\/schemas\/migration" } } } @@ -40887,22 +40796,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "validateInvoice", + "method": "createCSVExport", "group": null, - "weight": 1033, "cookies": false, "type": "", - "demo": "organizations\/validate-invoice.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\/update-invoice-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", "auth": { "Project": [] } @@ -40912,45 +40820,96 @@ "Project": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "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": { + "resourceId": { + "type": "string", + "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.", + "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" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { - "get": { - "summary": "View invoice in PDF", - "operationId": "organizationsGetInvoiceView", + "\/migrations\/csv\/imports": { + "post": { + "summary": "Import documents from a CSV", + "operationId": "migrationsCreateCSVImport", "tags": [ - "organizations" + "migrations" ], - "description": "View invoice in PDF", + "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": "paymentMethod", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" + "$ref": "#\/components\/schemas\/migration" } } } @@ -40958,22 +40917,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getInvoiceView", + "method": "createCSVImport", "group": null, - "weight": 1034, "cookies": false, "type": "", - "demo": "organizations\/get-invoice-view.md", + "demo": "migrations\/create-csv-import.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-invoice-view.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", "auth": { "Project": [] } @@ -40983,45 +40941,72 @@ "Project": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "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": { + "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?", + "default": false, + "x-example": false + }, + "onDuplicate": { + "type": "string", + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "default": "fail", + "x-example": "fail", + "enum": [ + "fail", + "skip", + "overwrite" + ], + "x-enum-name": "MigrationOnDuplicate" + } + }, + "required": [ + "bucketId", + "fileId", + "resourceId" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/keys": { - "get": { - "summary": "List organization keys", - "operationId": "organizationsListKeys", + "\/migrations\/firebase": { + "post": { + "summary": "Create Firebase migration", + "operationId": "migrationsCreateFirebaseMigration", "tags": [ - "organizations" + "migrations" ], - "description": "Get a list of all API keys from the current organization. ", + "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": "API Keys List", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/keyList" + "$ref": "#\/components\/schemas\/migration" } } } @@ -41029,21 +41014,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", - "weight": 1048, + "method": "createFirebaseMigration", + "group": null, "cookies": false, "type": "", - "demo": "organizations\/list-keys.md", + "demo": "migrations\/create-firebase-migration.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\/references\/migrations\/migration-firebase.md", "auth": { "Project": [] } @@ -41053,129 +41038,42 @@ "Project": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "schema": { - "type": "string", - "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.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create organization key", - "operationId": "organizationsCreateKey", - "tags": [ - "organizations" - ], - "description": "Create a new organization API key.", - "responses": { - "201": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createKey", - "group": "keys", - "weight": 1046, - "cookies": false, - "type": "", - "demo": "organizations\/create-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "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": { - "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": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" + "user", + "database", + "table", + "column", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "FirebaseMigrationResource" } }, - "expire": { + "serviceAccount": { "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "JSON of the Firebase service account credentials", + "x-example": "<SERVICE_ACCOUNT>" } }, "required": [ - "name", - "scopes" + "resources", + "serviceAccount" ] } } @@ -41183,21 +41081,21 @@ } } }, - "\/organizations\/{organizationId}\/keys\/{keyId}": { + "\/migrations\/firebase\/report": { "get": { - "summary": "Get organization key", - "operationId": "organizationsGetKey", + "summary": "Get Firebase migration report", + "operationId": "migrationsGetFirebaseReport", "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": "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": "Key", + "description": "Migration Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/migrationReport" } } } @@ -41205,21 +41103,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getKey", - "group": "keys", - "weight": 1050, + "method": "getFirebaseReport", + "group": null, "cookies": false, "type": "", - "demo": "organizations\/get-key.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\/references\/migrations\/migration-firebase-report.md", "auth": { "Project": [] } @@ -41231,41 +41129,58 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "resources", + "description": "List of resources to migrate", "required": true, "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "FirebaseMigrationResource" + } }, - "in": "path" + "in": "query" }, { - "name": "keyId", - "description": "Key unique ID.", + "name": "serviceAccount", + "description": "JSON of the Firebase service account credentials", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<SERVICE_ACCOUNT>" }, - "in": "path" + "in": "query" } ] - }, - "put": { - "summary": "Update organization key", - "operationId": "organizationsUpdateKey", + } + }, + "\/migrations\/json\/exports": { + "post": { + "summary": "Export documents to JSON", + "operationId": "migrationsCreateJSONExport", "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": "Export documents to a JSON file from your Appwrite database. This endpoint allows you to export documents to a JSON file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.\n", "responses": { - "200": { - "description": "Key", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/migration" } } } @@ -41273,21 +41188,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", - "weight": 1047, + "method": "createJSONExport", + "group": null, "cookies": false, "type": "", - "demo": "organizations\/update-key.md", + "demo": "migrations\/create-json-export.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-json-export.md", "auth": { "Project": [] } @@ -41297,105 +41212,94 @@ "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": { + "resourceId": { "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", + "x-example": "<ID1:ID2>" }, - "scopes": { + "filename": { + "type": "string", + "description": "The name of the file to be created for the export, excluding the .json extension.", + "x-example": "<FILENAME>" + }, + "columns": { "type": "array", - "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "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", - "enum": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" - ], - "x-enum-name": null, - "x-enum-keys": [] + "type": "string" } }, - "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "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" + } + }, + "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": [ - "name", - "scopes" + "resourceId", + "filename" ] } } } } - }, - "delete": { - "summary": "Delete organization key", - "operationId": "organizationsDeleteKey", + } + }, + "\/migrations\/json\/imports": { + "post": { + "summary": "Import documents from a JSON", + "operationId": "migrationsCreateJSONImport", "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": "Import documents from a JSON file into your Appwrite database. This endpoint allows you to import documents from a JSON file uploaded to Appwrite Storage bucket.\n", "responses": { - "204": { - "description": "No content" + "202": { + "description": "Migration", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migration" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", - "weight": 1049, + "method": "createJSONImport", + "group": null, "cookies": false, "type": "", - "demo": "organizations\/delete-key.md", + "demo": "migrations\/create-json-import.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-json-import.md", "auth": { "Project": [] } @@ -41405,45 +41309,72 @@ "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": { + "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?", + "default": false, + "x-example": false + }, + "onDuplicate": { + "type": "string", + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "default": "fail", + "x-example": "fail", + "enum": [ + "fail", + "skip", + "overwrite" + ], + "x-enum-name": "MigrationOnDuplicate" + } + }, + "required": [ + "bucketId", + "fileId", + "resourceId" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/payment-method": { - "patch": { - "summary": "Set team's payment method", - "operationId": "organizationsSetDefaultPaymentMethod", + "\/migrations\/nhost": { + "post": { + "summary": "Create NHost migration", + "operationId": "migrationsCreateNHostMigration", "tags": [ - "organizations" + "migrations" ], - "description": "Set a organization's default payment method.", + "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", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/migration" } } } @@ -41451,22 +41382,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "setDefaultPaymentMethod", + "method": "createNHostMigration", "group": null, - "weight": 1021, "cookies": false, "type": "", - "demo": "organizations\/set-default-payment-method.md", + "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\/set-default-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost.md", "auth": { "Project": [] } @@ -41476,52 +41406,102 @@ "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", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "NHostMigrationResource" + } + }, + "subdomain": { "type": "string", - "description": "Unique ID of payment method", - "x-example": "<PAYMENT_METHOD_ID>" + "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", + "default": 5432, + "x-example": null, + "format": "int32" } }, "required": [ - "paymentMethodId" + "resources", + "subdomain", + "region", + "adminSecret", + "database", + "username", + "password" ] } } } } - }, - "delete": { - "summary": "Delete team's default payment method", - "operationId": "organizationsDeleteDefaultPaymentMethod", + } + }, + "\/migrations\/nhost\/report": { + "get": { + "summary": "Get NHost migration report", + "operationId": "migrationsGetNHostReport", "tags": [ - "organizations" + "migrations" ], - "description": "Delete the default payment method 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": "Organization", + "description": "Migration Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/migrationReport" } } } @@ -41529,22 +41509,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteDefaultPaymentMethod", + "method": "getNHostReport", "group": null, - "weight": 1023, "cookies": false, "type": "", - "demo": "organizations\/delete-default-payment-method.md", + "demo": "migrations\/get-n-host-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-nhost-report.md", "auth": { "Project": [] } @@ -41556,33 +41535,120 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "resources", + "description": "List of resources to migrate.", "required": true, "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/payment-method\/backup": { - "patch": { - "summary": "Set team's backup payment method", - "operationId": "organizationsSetBackupPaymentMethod", - "tags": [ - "organizations" - ], - "description": "Set an organization's backup payment method.\n", - "responses": { - "200": { - "description": "Organization", + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "NHostMigrationResource" + } + }, + "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.", + "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" + } + ] + } + }, + "\/migrations\/supabase": { + "post": { + "summary": "Create Supabase migration", + "operationId": "migrationsCreateSupabaseMigration", + "tags": [ + "migrations" + ], + "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": { + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/migration" } } } @@ -41590,22 +41656,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "setBackupPaymentMethod", + "method": "createSupabaseMigration", "group": null, - "weight": 1022, "cookies": false, "type": "", - "demo": "organizations\/set-backup-payment-method.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-backup-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase.md", "auth": { "Project": [] } @@ -41615,52 +41680,97 @@ "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", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "SupabaseMigrationResource" + } + }, + "endpoint": { "type": "string", - "description": "Unique ID of payment method", - "x-example": "<PAYMENT_METHOD_ID>" + "description": "Source's Supabase Endpoint", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "apiKey": { + "type": "string", + "description": "Source's API Key", + "x-example": "<API_KEY>" + }, + "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": "Source's Database Port", + "default": 5432, + "x-example": null, + "format": "int32" } }, "required": [ - "paymentMethodId" + "resources", + "endpoint", + "apiKey", + "databaseHost", + "username", + "password" ] } } } } - }, - "delete": { - "summary": "Delete team's backup payment method", - "operationId": "organizationsDeleteBackupPaymentMethod", + } + }, + "\/migrations\/supabase\/report": { + "get": { + "summary": "Get Supabase migration report", + "operationId": "migrationsGetSupabaseReport", "tags": [ - "organizations" + "migrations" ], - "description": "Delete a backup payment method 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" } } } @@ -41668,22 +41778,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteBackupPaymentMethod", + "method": "getSupabaseReport", "group": null, - "weight": 1024, "cookies": false, "type": "", - "demo": "organizations\/delete-backup-payment-method.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\/delete-backup-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase-report.md", "auth": { "Project": [] } @@ -41695,33 +41804,111 @@ ], "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", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "SupabaseMigrationResource" + } + }, + "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}\/payment-methods\/{paymentMethodId}": { + "\/migrations\/{migrationId}": { "get": { - "summary": "Get payment method", - "operationId": "organizationsGetPaymentMethod", + "summary": "Get migration", + "operationId": "migrationsGet", "tags": [ - "organizations" + "migrations" ], - "description": "Get an organization's payment method using it's payment method ID.", + "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": "paymentMethod", + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" + "$ref": "#\/components\/schemas\/migration" } } } @@ -41729,22 +41916,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPaymentMethod", + "method": "get", "group": null, - "weight": 1020, "cookies": false, "type": "", - "demo": "organizations\/get-payment-method.md", + "demo": "migrations\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "migrations.read", "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\/get-migration.md", "auth": { "Project": [] } @@ -41756,43 +41942,31 @@ ], "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", + "name": "migrationId", + "description": "Migration unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<PAYMENT_METHOD_ID>" + "x-example": "<MIGRATION_ID>" }, "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/plan": { - "get": { - "summary": "Get organization billing plan details", - "operationId": "organizationsGetPlan", + }, + "patch": { + "summary": "Update retry migration", + "operationId": "migrationsRetry", "tags": [ - "organizations" + "migrations" ], - "description": "Get the details of the current billing plan for an organization.", + "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", "responses": { - "200": { - "description": "billingPlan", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/billingPlan" + "$ref": "#\/components\/schemas\/migration" } } } @@ -41800,22 +41974,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPlan", + "method": "retry", "group": null, - "weight": 1011, "cookies": false, "type": "", - "demo": "organizations\/get-plan.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-plan.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/retry-migration.md", "auth": { "Project": [] } @@ -41827,54 +42000,46 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "migrationId", + "description": "Migration unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<MIGRATION_ID>" }, "in": "path" } ] }, - "patch": { - "summary": "Update organization billing plan", - "operationId": "organizationsUpdatePlan", + "delete": { + "summary": "Delete migration", + "operationId": "migrationsDelete", "tags": [ - "organizations" + "migrations" ], - "description": "Update the billing plan for an organization.", + "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": "updatePlan", + "method": "delete", "group": null, - "weight": 1012, "cookies": false, "type": "", - "demo": "organizations\/update-plan.md", - "rate-limit": 10, + "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\/update-plan.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/delete-migration.md", "auth": { "Project": [] } @@ -41886,90 +42051,33 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique 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": { - "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": "Additional member invites", - "x-example": null, - "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 - } - }, - "required": [ - "billingPlan" - ] - } - } - } - } + ] } }, - "\/organizations\/{organizationId}\/plan\/cancel": { - "patch": { - "summary": "Cancel organization plan change", - "operationId": "organizationsCancelDowngrade", + "\/organization\/keys": { + "get": { + "summary": "List organization keys", + "operationId": "organizationListKeys", "tags": [ - "organizations" + "organization" ], - "description": "Cancel the downgrade initiated for an organization.", + "description": "Get a list of all API keys from the current organization.", "responses": { "200": { - "description": "Organization", + "description": "API Keys List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/keyList" } } } @@ -41977,60 +42085,72 @@ }, "deprecated": false, "x-appwrite": { - "method": "cancelDowngrade", - "group": null, - "weight": 1013, + "method": "listKeys", + "group": "keys", "cookies": false, "type": "", - "demo": "organizations\/cancel-downgrade.md", + "demo": "organization\/list-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "organization.keys.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/cancel-downgrade.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: expire, accessedAt, name, scopes", + "required": false, "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/plan\/estimations": { + "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 billing plan estimation (upgrade or downgrade)", - "operationId": "organizationsCreatePlanEstimation", + "summary": "Create organization key", + "operationId": "organizationCreateKey", "tags": [ - "organizations" + "organization" ], - "description": "Create a billing plan estimation for upgrading or downgrading an organization plan.\n", + "description": "Create a new organization API key.", "responses": { - "200": { - "description": "EstimationPlanChange", + "201": { + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/estimationPlanChange" + "$ref": "#\/components\/schemas\/key" } } } @@ -42038,41 +42158,29 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPlanEstimation", - "group": null, - "weight": 1042, + "method": "createKey", + "group": "keys", "cookies": false, "type": "", - "demo": "organizations\/create-plan-estimation.md", - "rate-limit": 10, + "demo": "organization\/create-key.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "organization.keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-plan-estimation.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": { @@ -42081,28 +42189,49 @@ "schema": { "type": "object", "properties": { - "billingPlan": { + "keyId": { "type": "string", - "description": "Target billing plan", - "x-example": "tier-0" + "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>" }, - "invites": { + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "scopes": { "type": "array", - "description": "Additional member invites", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", "x-example": null, "items": { - "type": "string" + "type": "string", + "enum": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes" } }, - "couponId": { + "expire": { "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } }, "required": [ - "billingPlan" + "keyId", + "name", + "scopes" ] } } @@ -42110,21 +42239,21 @@ } } }, - "\/organizations\/{organizationId}\/regions": { + "\/organization\/keys\/{keyId}": { "get": { - "summary": "List Regions", - "operationId": "organizationsListRegions", + "summary": "Get organization key", + "operationId": "organizationGetKey", "tags": [ - "organizations" + "organization" ], - "description": "Get all available regions for an organization.", + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including its scopes.", "responses": { "200": { - "description": "Regions list", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/consoleRegionList" + "$ref": "#\/components\/schemas\/key" } } } @@ -42132,60 +42261,58 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRegions", - "group": null, - "weight": 1040, + "method": "getKey", + "group": "keys", "cookies": false, "type": "", - "demo": "organizations\/list-regions.md", + "demo": "organization\/get-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "organization.keys.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-regions.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Team ID.", + "name": "keyId", + "description": "Key unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<KEY_ID>" }, "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/roles": { - "get": { - "summary": "Get Scopes", - "operationId": "organizationsGetScopes", + }, + "put": { + "summary": "Update organization key", + "operationId": "organizationUpdateKey", "tags": [ - "organizations" + "organization" ], - "description": "Get Scopes", + "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": "Roles", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/roles" + "$ref": "#\/components\/schemas\/key" } } } @@ -42193,152 +42320,160 @@ }, "deprecated": false, "x-appwrite": { - "method": "getScopes", - "group": null, - "weight": 1039, + "method": "updateKey", + "group": "keys", "cookies": false, "type": "", - "demo": "organizations\/get-scopes.md", + "demo": "organization\/update-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "organization.keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-scopes.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization id", + "name": "keyId", + "description": "Key unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<KEY_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", - "tags": [ - "organizations" ], - "description": "Set an organization's billing tax ID.", - "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } + "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": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes" + } + }, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "name", + "scopes" + ] } } } + } + }, + "delete": { + "summary": "Delete organization key", + "operationId": "organizationDeleteKey", + "tags": [ + "organization" + ], + "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": "setBillingTaxId", - "group": null, - "weight": 1015, + "method": "deleteKey", + "group": "keys", "cookies": false, "type": "", - "demo": "organizations\/set-billing-tax-id.md", + "demo": "organization\/delete-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "organization.keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-tax-id.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "keyId", + "description": "Key unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<KEY_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "taxId": { - "type": "string", - "description": "Tax Id associated to billing.", - "x-example": "<TAX_ID>", - "x-nullable": true - } - }, - "required": [ - "taxId" - ] - } - } - } - } + ] } }, - "\/organizations\/{organizationId}\/usage": { + "\/organization\/projects": { "get": { - "summary": "Get team's usage data", - "operationId": "organizationsGetUsage", + "summary": "List organization projects", + "operationId": "organizationListProjects", "tags": [ - "organizations" + "organization" ], - "description": "Get the usage data for an organization.", + "description": "Get a list of all projects. You can use the query params to filter your results.", "responses": { "200": { - "description": "UsageOrganization", + "description": "Projects List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageOrganization" + "$ref": "#\/components\/schemas\/projectList" } } } @@ -42346,82 +42481,83 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 1016, + "method": "listProjects", + "group": "projects", "cookies": false, "type": "", - "demo": "organizations\/get-usage.md", + "demo": "organization\/list-projects.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "projects.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-usage.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, teamId, labels, search", + "required": false, "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "startDate", - "description": "Starting date for the usage", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00" + "x-example": "<SEARCH>", + "default": "" }, "in": "query" }, { - "name": "endDate", - "description": "End date for the usage", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, "schema": { - "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00" + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] - } - }, - "\/organizations\/{organizationId}\/validate": { - "patch": { - "summary": "Validate payment for the organization after creation or upgrade", - "operationId": "organizationsValidatePayment", + }, + "post": { + "summary": "Create organization project", + "operationId": "organizationCreateProject", "tags": [ - "organizations" + "organization" ], - "description": "Validate payment for team after creation or upgrade.", + "description": "Create a new project.", "responses": { - "200": { - "description": "Organization", + "201": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/project" } } } @@ -42429,41 +42565,29 @@ }, "deprecated": false, "x-appwrite": { - "method": "validatePayment", - "group": null, - "weight": 1038, + "method": "createProject", + "group": "projects", "cookies": false, "type": "", - "demo": "organizations\/validate-payment.md", + "demo": "organization\/create-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "projects.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/validate-payment.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": { @@ -42472,36 +42596,56 @@ "schema": { "type": "object", "properties": { - "invites": { - "type": "array", - "description": "Additional member invites", - "x-example": null, - "items": { - "type": "string" - } + "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>" + }, + "region": { + "type": "string", + "description": "Project Region.", + "x-example": "fra", + "enum": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" + ], + "x-enum-name": "Region" } - } + }, + "required": [ + "projectId", + "name" + ] } } } } } }, - "\/presences": { + "\/organization\/projects\/{projectId}": { "get": { - "summary": "List presences", - "operationId": "presencesList", + "summary": "Get organization project", + "operationId": "organizationGetProject", "tags": [ - "presences" + "organization" ], - "description": "List presence logs. Expired entries are filtered out automatically.\n", + "description": "Get a project.", "responses": { "200": { - "description": "Presences List", + "description": "Project", "content": { - "application\/json": { + "": { "schema": { - "$ref": "#\/components\/schemas\/presenceList" + "$ref": "#\/components\/schemas\/project" } } } @@ -42509,25 +42653,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "presences", - "weight": 419, + "method": "getProject", + "group": "projects", "cookies": false, "type": "", - "demo": "presences\/list.md", + "demo": "organization\/get-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", + "scope": "projects.read", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/list.md", "auth": { "Project": [] } @@ -42535,66 +42675,36 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK.", - "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" - }, - { - "name": "ttl", - "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, + "name": "projectId", + "description": "Project unique ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 + "type": "string", + "x-example": "<PROJECT_ID>" }, - "in": "query" + "in": "path" } ] - } - }, - "\/presences\/usage": { - "get": { - "summary": "Get presence usage", - "operationId": "presencesGetUsage", + }, + "patch": { + "summary": "Update organization project", + "operationId": "organizationUpdateProject", "tags": [ - "presences" + "organization" ], - "description": "Get presence usage metrics, including the current total of online users and historical online user counts for the selected time range.\n", + "description": "Update a project by its unique ID.", "responses": { "200": { - "description": "UsagePresence", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usagePresence" + "$ref": "#\/components\/schemas\/project" } } } @@ -42602,94 +42712,92 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 417, + "method": "updateProject", + "group": "projects", "cookies": false, "type": "", - "demo": "presences\/get-usage.md", + "demo": "organization\/update-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", + "scope": "projects.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "projectId", + "description": "Project unique ID.", + "required": true, "schema": { "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [], - "default": "30d" + "x-example": "<PROJECT_ID>" }, - "in": "query" + "in": "path" } - ] - } - }, - "\/presences\/{presenceId}": { - "get": { - "summary": "Get presence", - "operationId": "presencesGet", - "tags": [ - "presences" ], - "description": "Get a presence log by its unique ID. Entries whose `expiresAt` is in the past are treated as not found.\n", - "responses": { - "200": { - "description": "Presence", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/presence" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "name" + ] } } } + } + }, + "delete": { + "summary": "Delete organization project", + "operationId": "organizationDeleteProject", + "tags": [ + "organization" + ], + "description": "Delete a project by its unique ID.", + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "presences", - "weight": 418, + "method": "deleteProject", + "group": "projects", "cookies": false, "type": "", - "demo": "presences\/get.md", + "demo": "organization\/delete-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", + "scope": "projects.write", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get.md", "auth": { "Project": [] } @@ -42697,38 +42805,38 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "presenceId", - "description": "Presence unique ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<PRESENCE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } ] - }, - "put": { - "summary": "Upsert presence", - "operationId": "presencesUpsert", + } + }, + "\/organizations": { + "get": { + "summary": "List Orgnizations", + "operationId": "organizationsList", "tags": [ - "presences" + "organizations" ], - "description": "Create or update a presence log by its user ID.\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": "Presence", + "description": "Organizations list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/presence" + "$ref": "#\/components\/schemas\/organizationList" } } } @@ -42736,74 +42844,107 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsert", - "group": "presences", - "weight": 416, + "method": "list", + "group": null, "cookies": false, "type": "", - "demo": "presences\/upsert.md", + "demo": "organizations\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", + "scope": "teams.read", "platforms": [ - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/upsert.md", - "methods": [ - { - "name": "upsert", - "namespace": "presences", - "desc": "Upsert presence", - "auth": { - "Project": [] - }, - "parameters": [ - "presenceId", - "userId", - "status", - "permissions", - "expiresAt", - "metadata" - ], - "required": [ - "presenceId", - "userId", - "status" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/presence" - } - ], - "description": "Create or update a presence log by its user ID.\n", - "demo": "presences\/upsert.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Session": [] + "Project": [] } ], "parameters": [ { - "name": "presenceId", - "description": "Presence 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, 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, "schema": { "type": "string", - "x-example": "<PRESENCE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" + } + ] + }, + "post": { + "summary": "Create Organization", + "operationId": "organizationsCreate", + "tags": [ + "organizations" + ], + "description": "Create a new organization.\n", + "responses": { + "201": { + "description": "Organization, or PaymentAuthentication", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/organization" + }, + { + "$ref": "#\/components\/schemas\/paymentAuthentication" + } + ] + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "create", + "group": null, + "cookies": false, + "type": "", + "demo": "organizations\/create.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] } ], "requestBody": { @@ -42812,58 +42953,100 @@ "schema": { "type": "object", "properties": { - "userId": { + "organizationId": { "type": "string", - "description": "User ID.", - "x-example": "<USER_ID>" + "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>" }, - "status": { + "name": { "type": "string", - "description": "Presence status.", - "x-example": "<STATUS>" + "description": "Organization name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "permissions": { + "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", + "default": "", + "x-example": "<BILLING_ADDRESS_ID>", + "x-nullable": true + }, + "invites": { "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\")\"]", + "description": "Additional member invites", + "default": [], + "x-example": null, "items": { "type": "string" } }, - "expiresAt": { + "couponId": { "type": "string", - "description": "Presence expiry datetime.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true }, - "metadata": { - "type": "object", - "description": "Presence metadata object.", - "x-example": "{}" + "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", + "default": "appwrite", + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": "Platform" } }, "required": [ - "status" + "organizationId", + "name", + "billingPlan" ] } } } } - }, + } + }, + "\/organizations\/estimations\/create-organization": { "patch": { - "summary": "Update presence", - "operationId": "presencesUpdate", + "summary": "Estimate create Organization", + "operationId": "organizationsEstimationCreateOrganization", "tags": [ - "presences" + "organizations" ], - "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "description": "Get estimation for creating an organization.", "responses": { "200": { - "description": "Presence", + "description": "Estimation", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/presence" + "$ref": "#\/components\/schemas\/estimation" } } } @@ -42871,74 +43054,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "presences", - "weight": 420, + "method": "estimationCreateOrganization", + "group": null, "cookies": false, "type": "", - "demo": "presences\/update.md", - "rate-limit": 0, + "demo": "organizations\/estimation-create-organization.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", + "scope": "teams.write", "platforms": [ - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/update.md", - "methods": [ - { - "name": "updatePresence", - "namespace": "presences", - "desc": "Update presence", - "auth": { - "Project": [] - }, - "parameters": [ - "presenceId", - "userId", - "status", - "expiresAt", - "metadata", - "permissions", - "purge" - ], - "required": [ - "presenceId", - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/presence" - } - ], - "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", - "demo": "presences\/update-presence.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-create-organization.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Session": [] - } - ], - "parameters": [ - { - "name": "presenceId", - "description": "Presence unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PRESENCE_ID>" - }, - "in": "path" + "Project": [] } ], "requestBody": { @@ -42947,53 +43084,61 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "<USER_ID>" - }, - "status": { + "billingPlan": { "type": "string", - "description": "Presence status.", - "x-example": "<STATUS>" + "description": "Organization billing plan chosen", + "x-example": "tier-0" }, - "expiresAt": { + "paymentMethodId": { "type": "string", - "description": "Presence expiry datetime.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - }, - "metadata": { - "type": "object", - "description": "Presence metadata object.", - "x-example": "{}" + "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 }, - "permissions": { + "invites": { "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\")\"]", + "description": "Additional member invites", + "default": [], + "x-example": null, "items": { "type": "string" } }, - "purge": { - "type": "boolean", - "description": "When true, purge cached responses used by list presences endpoint.", - "x-example": false + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true + }, + "platform": { + "type": "string", + "description": "Platform type", + "default": "appwrite", + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": "Platform" } - } + }, + "required": [ + "billingPlan" + ] } } } } - }, + } + }, + "\/organizations\/{organizationId}": { "delete": { - "summary": "Delete presence", - "operationId": "presencesDelete", + "summary": "Delete team", + "operationId": "organizationsDelete", "tags": [ - "presences" + "organizations" ], - "description": "Delete a presence log by its unique ID.\n", + "description": "Delete an organization.", "responses": { "204": { "description": "No content" @@ -43002,65 +43147,58 @@ "deprecated": false, "x-appwrite": { "method": "delete", - "group": "presences", - "weight": 421, + "group": null, "cookies": false, "type": "", - "demo": "presences\/delete.md", + "demo": "organizations\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", + "scope": "organizations.write", "platforms": [ - "console", - "server", - "client", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "presenceId", - "description": "Presence unique ID.", + "name": "organizationId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<PRESENCE_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } ] } }, - "\/project": { + "\/organizations\/{organizationId}\/addons": { "get": { - "summary": "Get project", - "operationId": "projectGet", + "summary": "List addons", + "operationId": "organizationsListAddons", "tags": [ - "project" + "organizations" ], - "description": "Get a project.", + "description": "List all billing addons for an organization.\n", "responses": { "200": { - "description": "Project", + "description": "Addons list", "content": { - "": { + "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/addonList" } } } @@ -43068,90 +43206,119 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", + "method": "listAddons", "group": null, - "weight": 1109, "cookies": false, "type": "", - "demo": "project\/get.md", + "demo": "organizations\/list-addons.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.read", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-addons.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ] - }, - "delete": { - "summary": "Delete project", - "operationId": "projectDelete", + } + }, + "\/organizations\/{organizationId}\/addons\/baa": { + "post": { + "summary": "Create BAA addon", + "operationId": "organizationsCreateBaaAddon", "tags": [ - "project" + "organizations" ], - "description": "Delete a project.", + "description": "Create the BAA billing addon for an organization.\n", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", + "method": "createBaaAddon", "group": null, - "weight": 1108, "cookies": false, "type": "", - "demo": "project\/delete.md", - "rate-limit": 0, + "demo": "organizations\/create-baa-addon.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-baa-addon.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ] } }, - "\/project\/auth-methods\/{methodId}": { - "patch": { - "summary": "Update project auth method status", - "operationId": "projectUpdateAuthMethod", + "\/organizations\/{organizationId}\/addons\/{addonId}": { + "get": { + "summary": "Get addon", + "operationId": "organizationsGetAddon", "tags": [ - "project" + "organizations" ], - "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", + "description": "Get the details of a billing addon for an organization.\n", "responses": { "200": { - "description": "Project", + "description": "Addon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/addon" } } } @@ -43159,91 +43326,200 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAuthMethod", + "method": "getAddon", "group": null, - "weight": 1158, "cookies": false, "type": "", - "demo": "project\/update-auth-method.md", + "demo": "organizations\/get-addon.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-addon.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "methodId", - "description": "Auth Method ID. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "email-password", - "enum": [ - "email-password", - "magic-url", - "email-otp", - "anonymous", - "invites", - "jwt", - "phone" - ], - "x-enum-name": "ProjectAuthMethodId", - "x-enum-keys": [] + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ADDON_ID>" }, "in": "path" } + ] + }, + "delete": { + "summary": "Delete addon", + "operationId": "organizationsDeleteAddon", + "tags": [ + "organizations" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Auth method status.", - "x-example": false - } - }, - "required": [ - "enabled" - ] + "description": "Delete a billing addon for an organization.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteAddon", + "group": null, + "cookies": false, + "type": "", + "demo": "organizations\/delete-addon.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\/delete-addon.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ADDON_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/addons\/{addonId}\/confirmations": { + "post": { + "summary": "Confirm addon payment after 3DS authentication", + "operationId": "organizationsConfirmAddonPayment", + "tags": [ + "organizations" + ], + "description": "Confirm payment for a billing addon for an organization.\n", + "responses": { + "200": { + "description": "Addon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/addon" + } } } } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "confirmAddonPayment", + "group": null, + "cookies": false, + "type": "", + "demo": "organizations\/confirm-addon-payment.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\/confirm-addon-payment.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ADDON_ID>" + }, + "in": "path" + } + ] } }, - "\/project\/keys": { + "\/organizations\/{organizationId}\/addons\/{addon}\/price": { "get": { - "summary": "List project keys", - "operationId": "projectListKeys", + "summary": "Get addon price", + "operationId": "organizationsGetAddonPrice", "tags": [ - "project" + "organizations" ], - "description": "Get a list of all API keys from the current project.", + "description": "Get the price details for a billing addon for an organization.\n", "responses": { "200": { - "description": "API Keys List", + "description": "AddonPrice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/keyList" + "$ref": "#\/components\/schemas\/addonPrice" } } } @@ -43251,73 +43527,74 @@ }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", - "weight": 1125, + "method": "getAddonPrice", + "group": null, "cookies": false, "type": "", - "demo": "project\/list-keys.md", + "demo": "organizations\/get-addon-price.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-addon-price.md", "auth": { "Project": [] } }, "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: expire, accessedAt, name, scopes", - "required": false, + "name": "organizationId", + "description": "Organization ID", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "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": "addon", + "description": "Addon key identifier (e.g. baa).", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "baa", + "enum": [ + "baa", + "backup_recovery" + ], + "x-enum-name": "OrganizationAddon" }, - "in": "query" + "in": "path" } ] - }, - "post": { - "summary": "Create project key", - "operationId": "projectCreateKey", + } + }, + "\/organizations\/{organizationId}\/aggregations": { + "get": { + "summary": "List aggregations", + "operationId": "organizationsListAggregations", "tags": [ - "project" + "organizations" ], - "description": "Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create an ephemeral API key if you need a short-lived key instead.", + "description": "Get a list of all aggregations for an organization.", "responses": { - "201": { - "description": "Key", + "200": { + "description": "Aggregation team list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/aggregationTeamList" } } } @@ -43325,188 +43602,72 @@ }, "deprecated": false, "x-appwrite": { - "method": "createKey", - "group": "keys", - "weight": 1123, + "method": "listAggregations", + "group": null, "cookies": false, "type": "", - "demo": "project\/create-key.md", + "demo": "organizations\/list-aggregations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-aggregations.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "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": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "templates.read", - "templates.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - } - }, - "required": [ - "keyId", - "name", - "scopes" - ] - } - } + "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\/keys\/ephemeral": { - "post": { - "summary": "Create ephemeral project key", - "operationId": "projectCreateEphemeralKey", + "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { + "get": { + "summary": "Get aggregation", + "operationId": "organizationsGetAggregation", "tags": [ - "project" + "organizations" ], - "description": "Create a new ephemeral API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create a standard API key if you need a longer-lived key instead.", + "description": "Get a specific aggregation using it's aggregation ID.", "responses": { - "201": { - "description": "Ephemeral Key", + "200": { + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/ephemeralKey" + "$ref": "#\/components\/schemas\/aggregationTeam" } } } @@ -43514,236 +43675,92 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEphemeralKey", - "group": "keys", - "weight": 1124, + "method": "getAggregation", + "group": null, "cookies": false, "type": "", - "demo": "project\/create-ephemeral-key.md", + "demo": "organizations\/get-aggregation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-aggregation.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 100 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "templates.read", - "templates.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [] - } - }, - "duration": { - "type": "integer", - "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", - "x-example": "600", - "format": "int32" - } - }, - "required": [ - "scopes", - "duration" - ] - } - } - } - } - } - }, - "\/project\/keys\/{keyId}": { - "get": { - "summary": "Get project key", - "operationId": "projectGetKey", - "tags": [ - "project" - ], - "description": "Get a key by its unique ID. ", - "responses": { - "200": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getKey", - "group": "keys", - "weight": 1126, - "cookies": false, - "type": "", - "demo": "project\/get-key.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "keyId", - "description": "Key ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<KEY_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 project key", - "operationId": "projectUpdateKey", + } + }, + "\/organizations\/{organizationId}\/billing-address": { + "patch": { + "summary": "Set team's billing address", + "operationId": "organizationsSetBillingAddress", "tags": [ - "project" + "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": "Set a billing address for an organization.", "responses": { "200": { - "description": "Key", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/organization" } } } @@ -43751,40 +43768,38 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", - "weight": 1128, + "method": "setBillingAddress", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-key.md", + "demo": "organizations\/set-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-address.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "keyId", - "description": "Key ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -43795,128 +43810,14 @@ "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": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "templates.read", - "templates.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [] - } - }, - "expire": { + "billingAddressId": { "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "Unique ID of billing address", + "x-example": "<BILLING_ADDRESS_ID>" } }, "required": [ - "name", - "scopes" + "billingAddressId" ] } } @@ -43924,12 +43825,12 @@ } }, "delete": { - "summary": "Delete project key", - "operationId": "projectDeleteKey", + "summary": "Delete team's billing address", + "operationId": "organizationsDeleteBillingAddress", "tags": [ - "project" + "organizations" ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "description": "Delete a team's billing address.", "responses": { "204": { "description": "No content" @@ -43937,61 +43838,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", - "weight": 1127, + "method": "deleteBillingAddress", + "group": null, "cookies": false, "type": "", - "demo": "project\/delete-key.md", + "demo": "organizations\/delete-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-billing-address.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "keyId", - "description": "Key ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } ] } }, - "\/project\/labels": { - "put": { - "summary": "Update project labels", - "operationId": "projectUpdateLabels", + "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { + "get": { + "summary": "Get billing address", + "operationId": "organizationsGetBillingAddress", "tags": [ - "project" + "organizations" ], - "description": "Update the project labels. Labels can be used to easily filter projects in an organization.", + "description": "Get a billing address using it's ID.", "responses": { "200": { - "description": "Project", + "description": "Address", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/billingAddress" } } } @@ -43999,71 +43898,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLabels", + "method": "getBillingAddress", "group": null, - "weight": 1110, "cookies": false, "type": "", - "demo": "project\/update-labels.md", + "demo": "organizations\/get-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-billing-address.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "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" - ] - } - } + "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", + "required": true, + "schema": { + "type": "string", + "x-example": "<BILLING_ADDRESS_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/mock-phones": { - "get": { - "summary": "List project mock phones", - "operationId": "projectListMockPhones", + "\/organizations\/{organizationId}\/billing-email": { + "patch": { + "summary": "Set team's billing email", + "operationId": "organizationsSetBillingEmail", "tags": [ - "project" + "organizations" ], - "description": "Get a list of all mock phones in the project. This endpoint returns an array of all mock phones and their OTPs.", + "description": "Set the current billing email for the organization.", "responses": { "200": { - "description": "Mock Numbers List", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumberList" + "$ref": "#\/components\/schemas\/organization" } } } @@ -44071,73 +43968,79 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMockPhones", - "group": "mocks", - "weight": 1143, + "method": "setBillingEmail", + "group": null, "cookies": false, "type": "", - "demo": "project\/list-mock-phones.md", + "demo": "organizations\/set-billing-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.read", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-email.md", "auth": { "Project": [] } }, "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). Only supported methods are limit and offset", - "required": false, + "name": "organizationId", + "description": "Organization ID", + "required": true, "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 + "type": "string", + "x-example": "<ORGANIZATION_ID>" }, - "in": "query" + "in": "path" } - ] - }, - "post": { - "summary": "Create project mock phone", - "operationId": "projectCreateMockPhone", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingEmail": { + "type": "string", + "description": "Billing email for the organization.", + "x-example": "email@example.com", + "format": "email" + } + }, + "required": [ + "billingEmail" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/budget": { + "patch": { + "summary": "Update organization budget", + "operationId": "organizationsUpdateBudget", "tags": [ - "project" + "organizations" ], - "description": "Create a new mock phone for your project. Use this endpoint to register a mock phone number and its sign-in OTP for your testers.", + "description": "Update the budget limit for an organization.", "responses": { - "201": { - "description": "Mock Number", + "200": { + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumber" + "$ref": "#\/components\/schemas\/organization" } } } @@ -44145,30 +44048,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMockPhone", - "group": "mocks", - "weight": 1142, + "method": "updateBudget", + "group": null, "cookies": false, "type": "", - "demo": "project\/create-mock-phone.md", + "demo": "organizations\/update-budget.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-budget.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -44177,21 +44090,27 @@ "schema": { "type": "object", "properties": { - "number": { - "type": "string", - "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", - "x-example": "+12065550100", - "format": "phone" + "budget": { + "type": "integer", + "description": "Budget limit for additional usage set for the organization", + "x-example": 0, + "format": "int32", + "x-nullable": true }, - "otp": { - "type": "string", - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "x-example": "<OTP>" + "alerts": { + "type": "array", + "description": "Budget alert limit percentage", + "default": [ + 75 + ], + "x-example": null, + "items": { + "type": "integer" + } } }, "required": [ - "number", - "otp" + "budget" ] } } @@ -44199,21 +44118,21 @@ } } }, - "\/project\/mock-phones\/{number}": { + "\/organizations\/{organizationId}\/credits": { "get": { - "summary": "Get project mock phone", - "operationId": "projectGetMockPhone", + "summary": "List credits", + "operationId": "organizationsListCredits", "tags": [ - "project" + "organizations" ], - "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", + "description": "List all credits for an organization.\n", "responses": { "200": { - "description": "Mock Number", + "description": "CreditList", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumber" + "$ref": "#\/components\/schemas\/creditList" } } } @@ -44221,60 +44140,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMockPhone", - "group": "mocks", - "weight": 1144, + "method": "listCredits", + "group": null, "cookies": false, "type": "", - "demo": "project\/get-mock-phone.md", + "demo": "organizations\/list-credits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.read", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-credits.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "format": "phone", - "x-example": "+12065550100" + "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" } ] }, - "put": { - "summary": "Update project mock phone", - "operationId": "projectUpdateMockPhone", + "post": { + "summary": "Add credits from coupon", + "operationId": "organizationsAddCredit", "tags": [ - "project" + "organizations" ], - "description": "Update a mock phone by its unique number. Use this endpoint to update the mock phone's OTP.", + "description": "Add credit to an organization using a coupon.", "responses": { - "200": { - "description": "Mock Number", + "201": { + "description": "Credit", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mockNumber" + "$ref": "#\/components\/schemas\/credit" } } } @@ -44282,41 +44211,38 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMockPhone", - "group": "mocks", - "weight": 1145, + "method": "addCredit", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-mock-phone.md", - "rate-limit": 0, + "demo": "organizations\/add-credit.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/add-credit.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "format": "phone", - "x-example": "+12065550100" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -44327,90 +44253,96 @@ "schema": { "type": "object", "properties": { - "otp": { + "couponId": { "type": "string", - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "x-example": "<OTP>" + "description": "ID of the coupon", + "x-example": "<COUPON_ID>" } }, "required": [ - "otp" + "couponId" ] } } } } - }, - "delete": { - "summary": "Delete project mock phone", - "operationId": "projectDeleteMockPhone", + } + }, + "\/organizations\/{organizationId}\/credits\/available": { + "get": { + "summary": "Get available credits", + "operationId": "organizationsGetAvailableCredits", "tags": [ - "project" + "organizations" ], - "description": "Delete a mock phone by its unique number. This endpoint removes the mock phone and its OTP configuration from the project.", + "description": "Get total available valid credits for an organization.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "CreditAvailable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/creditAvailable" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteMockPhone", - "group": "mocks", - "weight": 1146, + "method": "getAvailableCredits", + "group": null, "cookies": false, "type": "", - "demo": "project\/delete-mock-phone.md", + "demo": "organizations\/get-available-credits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-available-credits.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "format": "phone", - "x-example": "+12065550100" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } ] } }, - "\/project\/oauth2": { + "\/organizations\/{organizationId}\/credits\/{creditId}": { "get": { - "summary": "List project OAuth2 providers", - "operationId": "projectListOAuth2Providers", + "summary": "Get credit details", + "operationId": "organizationsGetCredit", "tags": [ - "project" + "organizations" ], - "description": "Get a list of all OAuth2 providers supported by the server, along with the project's configuration for each. Credential fields are write-only and always returned empty.", + "description": "Get credit details.", "responses": { "200": { - "description": "OAuth2 Providers List", + "description": "Credit", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2ProviderList" + "$ref": "#\/components\/schemas\/credit" } } } @@ -44418,75 +44350,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "listOAuth2Providers", - "group": "oauth2", - "weight": 1159, + "method": "getCredit", + "group": null, "cookies": false, "type": "", - "demo": "project\/list-o-auth-2-providers.md", + "demo": "organizations\/get-credit.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.read", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-credit.md", "auth": { "Project": [] } }, "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). Only supported methods are limit and offset", - "required": false, + "name": "organizationId", + "description": "Organization ID", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "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": "creditId", + "description": "Credit Unique ID", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<CREDIT_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/project\/oauth2\/amazon": { + "\/organizations\/{organizationId}\/estimations\/delete-organization": { "patch": { - "summary": "Update project OAuth2 Amazon", - "operationId": "projectUpdateOAuth2Amazon", + "summary": "Estimate delete team", + "operationId": "organizationsEstimationDeleteOrganization", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Amazon configuration.", + "description": "Get estimation for deleting an organization.", "responses": { "200": { - "description": "OAuth2Amazon", + "description": "DeleteOrganization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Amazon" + "$ref": "#\/components\/schemas\/estimationDeleteOrganization" } } } @@ -44494,78 +44420,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Amazon", - "group": "oauth2", - "weight": 1186, + "method": "estimationDeleteOrganization", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-amazon.md", - "rate-limit": 0, + "demo": "organizations\/estimation-delete-organization.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "organizations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-delete-organization.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/apple": { + "\/organizations\/{organizationId}\/estimations\/update-plan": { "patch": { - "summary": "Update project OAuth2 Apple", - "operationId": "projectUpdateOAuth2Apple", + "summary": "Estimate for update plan", + "operationId": "organizationsEstimationUpdatePlan", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Apple configuration.", + "description": "Get estimation for updating the organization plan.", "responses": { "200": { - "description": "OAuth2Apple", + "description": "UpdatePlan", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Apple" + "$ref": "#\/components\/schemas\/estimationUpdatePlan" } } } @@ -44573,30 +44480,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Apple", - "group": "oauth2", - "weight": 1201, + "method": "estimationUpdatePlan", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-apple.md", - "rate-limit": 0, + "demo": "organizations\/estimation-update-plan.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-update-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -44605,58 +44522,51 @@ "schema": { "type": "object", "properties": { - "serviceId": { - "type": "string", - "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", - "x-example": "<SERVICE_ID>", - "x-nullable": true - }, - "keyId": { + "billingPlan": { "type": "string", - "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", - "x-example": "<KEY_ID>", - "x-nullable": true + "description": "Organization billing plan chosen", + "x-example": "tier-0" }, - "teamId": { - "type": "string", - "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", - "x-example": "<TEAM_ID>", - "x-nullable": true + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } }, - "p8File": { + "couponId": { "type": "string", - "description": "Contents of the Apple OAuth2 app .p8 private key file. The secret key wrapped by the PEM markers is 200 characters long. For example: -----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", - "x-example": "<P8_FILE>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, + "description": "Coupon id", + "x-example": "<COUPON_ID>", "x-nullable": true } - } + }, + "required": [ + "billingPlan" + ] } } } } } }, - "\/project\/oauth2\/auth0": { - "patch": { - "summary": "Update project OAuth2 Auth0", - "operationId": "projectUpdateOAuth2Auth0", + "\/organizations\/{organizationId}\/feedbacks\/downgrade": { + "post": { + "summary": "Create downgrade feedback", + "operationId": "organizationsCreateDowngradeFeedback", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Auth0 configuration.", + "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": "OAuth2Auth0", + "201": { + "description": "Downgrade Feedback", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Auth0" + "$ref": "#\/components\/schemas\/downgradeFeedback" } } } @@ -44664,30 +44574,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Auth0", - "group": "oauth2", - "weight": 1195, + "method": "createDowngradeFeedback", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-auth-0.md", + "demo": "organizations\/create-downgrade-feedback.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-downgrade-feedback.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -44696,52 +44616,54 @@ "schema": { "type": "object", "properties": { - "clientId": { + "reason": { "type": "string", - "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "Feedback reason", + "x-example": "<REASON>" }, - "clientSecret": { + "message": { "type": "string", - "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true + "description": "Feedback message", + "x-example": "<MESSAGE>" }, - "endpoint": { + "fromPlanId": { "type": "string", - "description": "Domain of Auth0 instance. For example: example.us.auth0.com", - "x-example": "<ENDPOINT>", - "x-nullable": true + "description": "Plan downgrading from", + "x-example": "<FROM_PLAN_ID>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "toPlanId": { + "type": "string", + "description": "Plan downgrading to", + "x-example": "<TO_PLAN_ID>" } - } + }, + "required": [ + "reason", + "message", + "fromPlanId", + "toPlanId" + ] } } } } } }, - "\/project\/oauth2\/authentik": { - "patch": { - "summary": "Update project OAuth2 Authentik", - "operationId": "projectUpdateOAuth2Authentik", + "\/organizations\/{organizationId}\/invoices": { + "get": { + "summary": "List invoices", + "operationId": "organizationsListInvoices", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Authentik configuration.", + "description": "List all invoices for an organization.", "responses": { "200": { - "description": "OAuth2Authentik", + "description": "Billing invoices list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Authentik" + "$ref": "#\/components\/schemas\/invoiceList" } } } @@ -44749,84 +44671,72 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Authentik", - "group": "oauth2", - "weight": 1194, + "method": "listInvoices", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-authentik.md", + "demo": "organizations\/list-invoices.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-invoices.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "endpoint": { - "type": "string", - "description": "Domain of Authentik instance. For example: example.authentik.com", - "x-example": "<ENDPOINT>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "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, type, amount, currency, from, to, dueAt, attempts, status, grossAmount", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } - } + ] } }, - "\/project\/oauth2\/autodesk": { - "patch": { - "summary": "Update project OAuth2 Autodesk", - "operationId": "projectUpdateOAuth2Autodesk", + "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { + "get": { + "summary": "Get invoice", + "operationId": "organizationsGetInvoice", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Autodesk configuration.", + "description": "Get an invoice by its unique ID.", "responses": { "200": { - "description": "OAuth2Autodesk", + "description": "Invoice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Autodesk" + "$ref": "#\/components\/schemas\/invoice" } } } @@ -44834,78 +44744,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Autodesk", - "group": "oauth2", - "weight": 1169, + "method": "getInvoice", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-autodesk.md", + "demo": "organizations\/get-invoice.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/bitbucket": { - "patch": { - "summary": "Update project OAuth2 Bitbucket", - "operationId": "projectUpdateOAuth2Bitbucket", + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { + "get": { + "summary": "Download invoice in PDF", + "operationId": "organizationsGetInvoiceDownload", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Bitbucket configuration.", + "description": "Download invoice in PDF", "responses": { "200": { - "description": "OAuth2Bitbucket", + "description": "paymentMethod", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + "$ref": "#\/components\/schemas\/paymentMethod" } } } @@ -44913,78 +44814,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Bitbucket", - "group": "oauth2", - "weight": 1166, + "method": "getInvoiceDownload", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-bitbucket.md", + "demo": "organizations\/get-invoice-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-download.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", - "x-example": "<KEY>", - "x-nullable": true - }, - "secret": { - "type": "string", - "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", - "x-example": "<SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/bitly": { - "patch": { - "summary": "Update project OAuth2 Bitly", - "operationId": "projectUpdateOAuth2Bitly", + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { + "post": { + "summary": "Initiate payment for failed invoice to pay live from console", + "operationId": "organizationsCreateInvoicePayment", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Bitly configuration.", + "description": "Initiate payment for failed invoice to pay live from console", "responses": { "200": { - "description": "OAuth2Bitly", + "description": "Invoice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Bitly" + "$ref": "#\/components\/schemas\/invoice" } } } @@ -44992,30 +44884,50 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Bitly", - "group": "oauth2", - "weight": 1167, + "method": "createInvoicePayment", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-bitly.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": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-invoice-payment.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -45024,46 +44936,36 @@ "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { + "paymentMethodId": { "type": "string", - "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Payment method ID", + "x-example": "<PAYMENT_METHOD_ID>" } - } + }, + "required": [ + "paymentMethodId" + ] } } } } } }, - "\/project\/oauth2\/box": { + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { "patch": { - "summary": "Update project OAuth2 Box", - "operationId": "projectUpdateOAuth2Box", + "summary": "Validate the payment for an invoice and update status", + "operationId": "organizationsValidateInvoice", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Box configuration.", + "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", "responses": { "200": { - "description": "OAuth2Box", + "description": "Invoice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Box" + "$ref": "#\/components\/schemas\/invoice" } } } @@ -45071,78 +44973,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Box", - "group": "oauth2", - "weight": 1168, + "method": "validateInvoice", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-box.md", + "demo": "organizations\/validate-invoice.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-invoice-status.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/dailymotion": { - "patch": { - "summary": "Update project OAuth2 Dailymotion", - "operationId": "projectUpdateOAuth2Dailymotion", + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { + "get": { + "summary": "View invoice in PDF", + "operationId": "organizationsGetInvoiceView", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Dailymotion configuration.", + "description": "View invoice in PDF", "responses": { "200": { - "description": "OAuth2Dailymotion", + "description": "paymentMethod", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + "$ref": "#\/components\/schemas\/paymentMethod" } } } @@ -45150,78 +45043,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Dailymotion", - "group": "oauth2", - "weight": 1165, + "method": "getInvoiceView", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-dailymotion.md", + "demo": "organizations\/get-invoice-view.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-view.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "apiKey": { - "type": "string", - "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", - "x-example": "<API_KEY>", - "x-nullable": true - }, - "apiSecret": { - "type": "string", - "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", - "x-example": "<API_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } - } - } - } - }, - "\/project\/oauth2\/discord": { - "patch": { - "summary": "Update project OAuth2 Discord", - "operationId": "projectUpdateOAuth2Discord", - "tags": [ - "project" + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "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}\/payment-method": { + "patch": { + "summary": "Set team's payment method", + "operationId": "organizationsSetDefaultPaymentMethod", + "tags": [ + "organizations" ], - "description": "Update the project OAuth2 Discord configuration.", + "description": "Set a organization's default payment method.", "responses": { "200": { - "description": "OAuth2Discord", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Discord" + "$ref": "#\/components\/schemas\/organization" } } } @@ -45229,30 +45113,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Discord", - "group": "oauth2", - "weight": 1162, + "method": "setDefaultPaymentMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-discord.md", + "demo": "organizations\/set-default-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-default-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -45261,46 +45155,34 @@ "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { + "paymentMethodId": { "type": "string", - "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Unique ID of payment method", + "x-example": "<PAYMENT_METHOD_ID>" } - } + }, + "required": [ + "paymentMethodId" + ] } } } } - } - }, - "\/project\/oauth2\/disqus": { - "patch": { - "summary": "Update project OAuth2 Disqus", - "operationId": "projectUpdateOAuth2Disqus", + }, + "delete": { + "summary": "Delete team's default payment method", + "operationId": "organizationsDeleteDefaultPaymentMethod", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Disqus configuration.", + "description": "Delete the default payment method for an organization.", "responses": { "200": { - "description": "OAuth2Disqus", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Disqus" + "$ref": "#\/components\/schemas\/organization" } } } @@ -45308,78 +45190,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Disqus", - "group": "oauth2", - "weight": 1185, + "method": "deleteDefaultPaymentMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-disqus.md", + "demo": "organizations\/delete-default-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-default-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "publicKey": { - "type": "string", - "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", - "x-example": "<PUBLIC_KEY>", - "x-nullable": true - }, - "secretKey": { - "type": "string", - "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", - "x-example": "<SECRET_KEY>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/dropbox": { + "\/organizations\/{organizationId}\/payment-method\/backup": { "patch": { - "summary": "Update project OAuth2 Dropbox", - "operationId": "projectUpdateOAuth2Dropbox", + "summary": "Set team's backup payment method", + "operationId": "organizationsSetBackupPaymentMethod", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Dropbox configuration.", + "description": "Set an organization's backup payment method.\n", "responses": { "200": { - "description": "OAuth2Dropbox", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Dropbox" + "$ref": "#\/components\/schemas\/organization" } } } @@ -45387,30 +45250,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Dropbox", - "group": "oauth2", - "weight": 1164, + "method": "setBackupPaymentMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-dropbox.md", + "demo": "organizations\/set-backup-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-backup-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -45419,46 +45292,34 @@ "schema": { "type": "object", "properties": { - "appKey": { - "type": "string", - "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", - "x-example": "<APP_KEY>", - "x-nullable": true - }, - "appSecret": { + "paymentMethodId": { "type": "string", - "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", - "x-example": "<APP_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Unique ID of payment method", + "x-example": "<PAYMENT_METHOD_ID>" } - } + }, + "required": [ + "paymentMethodId" + ] } } } } - } - }, - "\/project\/oauth2\/etsy": { - "patch": { - "summary": "Update project OAuth2 Etsy", - "operationId": "projectUpdateOAuth2Etsy", + }, + "delete": { + "summary": "Delete team's backup payment method", + "operationId": "organizationsDeleteBackupPaymentMethod", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Etsy configuration.", + "description": "Delete a backup payment method for an organization.", "responses": { "200": { - "description": "OAuth2Etsy", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Etsy" + "$ref": "#\/components\/schemas\/organization" } } } @@ -45466,78 +45327,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Etsy", - "group": "oauth2", - "weight": 1187, + "method": "deleteBackupPaymentMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-etsy.md", + "demo": "organizations\/delete-backup-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-backup-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "keyString": { - "type": "string", - "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", - "x-example": "<KEY_STRING>", - "x-nullable": true - }, - "sharedSecret": { - "type": "string", - "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", - "x-example": "<SHARED_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/facebook": { - "patch": { - "summary": "Update project OAuth2 Facebook", - "operationId": "projectUpdateOAuth2Facebook", + "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { + "get": { + "summary": "Get payment method", + "operationId": "organizationsGetPaymentMethod", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Facebook configuration.", + "description": "Get an organization's payment method using it's payment method ID.", "responses": { "200": { - "description": "OAuth2Facebook", + "description": "paymentMethod", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Facebook" + "$ref": "#\/components\/schemas\/paymentMethod" } } } @@ -45545,78 +45387,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Facebook", - "group": "oauth2", - "weight": 1188, + "method": "getPaymentMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-facebook.md", + "demo": "organizations\/get-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "appId": { - "type": "string", - "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", - "x-example": "<APP_ID>", - "x-nullable": true - }, - "appSecret": { - "type": "string", - "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", - "x-example": "<APP_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "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" } - } + ] } }, - "\/project\/oauth2\/figma": { - "patch": { - "summary": "Update project OAuth2 Figma", - "operationId": "projectUpdateOAuth2Figma", + "\/organizations\/{organizationId}\/plan": { + "get": { + "summary": "Get organization billing plan details", + "operationId": "organizationsGetPlan", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Figma configuration.", + "description": "Get the details of the current billing plan for an organization.", "responses": { "200": { - "description": "OAuth2Figma", + "description": "billingPlan", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Figma" + "$ref": "#\/components\/schemas\/billingPlan" } } } @@ -45624,78 +45457,57 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Figma", - "group": "oauth2", - "weight": 1163, + "method": "getPlan", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-figma.md", + "demo": "organizations\/get-plan.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/oauth2\/fusionauth": { + ] + }, "patch": { - "summary": "Update project OAuth2 FusionAuth", - "operationId": "projectUpdateOAuth2FusionAuth", + "summary": "Update organization billing plan", + "operationId": "organizationsUpdatePlan", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 FusionAuth configuration.", + "description": "Update the billing plan for an organization.", "responses": { "200": { - "description": "OAuth2FusionAuth", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + "$ref": "#\/components\/schemas\/organization" } } } @@ -45703,30 +45515,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2FusionAuth", - "group": "oauth2", - "weight": 1196, + "method": "updatePlan", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-fusion-auth.md", - "rate-limit": 0, + "demo": "organizations\/update-plan.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -45735,52 +45557,76 @@ "schema": { "type": "object", "properties": { - "clientId": { + "billingPlan": { "type": "string", - "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "Organization billing plan chosen", + "x-example": "tier-0" }, - "clientSecret": { + "paymentMethodId": { "type": "string", - "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", - "x-example": "<CLIENT_SECRET>", + "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 }, - "endpoint": { + "billingAddressId": { "type": "string", - "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", - "x-example": "<ENDPOINT>", - "x-nullable": true + "description": "Unique ID of billing address", + "default": "", + "x-example": "<BILLING_ADDRESS_ID>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "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 } - } + }, + "required": [ + "billingPlan" + ] } } } } } }, - "\/project\/oauth2\/github": { + "\/organizations\/{organizationId}\/plan\/cancel": { "patch": { - "summary": "Update project OAuth2 GitHub", - "operationId": "projectUpdateOAuth2GitHub", + "summary": "Cancel organization plan change", + "operationId": "organizationsCancelDowngrade", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 GitHub configuration.", + "description": "Cancel the downgrade initiated for an organization.", "responses": { "200": { - "description": "OAuth2GitHub", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Github" + "$ref": "#\/components\/schemas\/organization" } } } @@ -45788,78 +45634,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2GitHub", - "group": "oauth2", - "weight": 1161, + "method": "cancelDowngrade", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-git-hub.md", + "demo": "organizations\/cancel-downgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/cancel-downgrade.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/gitlab": { - "patch": { - "summary": "Update project OAuth2 Gitlab", - "operationId": "projectUpdateOAuth2Gitlab", + "\/organizations\/{organizationId}\/plan\/estimations": { + "post": { + "summary": "Create billing plan estimation (upgrade or downgrade)", + "operationId": "organizationsCreatePlanEstimation", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Gitlab configuration.", + "description": "Create a billing plan estimation for upgrading or downgrading an organization plan.\n", "responses": { "200": { - "description": "OAuth2Gitlab", + "description": "EstimationPlanChange", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Gitlab" + "$ref": "#\/components\/schemas\/estimationPlanChange" } } } @@ -45867,30 +45694,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Gitlab", - "group": "oauth2", - "weight": 1193, + "method": "createPlanEstimation", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-gitlab.md", - "rate-limit": 0, + "demo": "organizations\/create-plan-estimation.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-plan-estimation.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -45899,53 +45736,51 @@ "schema": { "type": "object", "properties": { - "applicationId": { + "billingPlan": { "type": "string", - "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", - "x-example": "<APPLICATION_ID>", - "x-nullable": true + "description": "Target billing plan", + "x-example": "tier-0" }, - "secret": { - "type": "string", - "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", - "x-example": "<SECRET>", - "x-nullable": true + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } }, - "endpoint": { + "couponId": { "type": "string", - "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, + "description": "Coupon id", + "x-example": "<COUPON_ID>", "x-nullable": true } - } + }, + "required": [ + "billingPlan" + ] } } } } } }, - "\/project\/oauth2\/google": { - "patch": { - "summary": "Update project OAuth2 Google", - "operationId": "projectUpdateOAuth2Google", + "\/organizations\/{organizationId}\/regions": { + "get": { + "summary": "List Regions", + "operationId": "organizationsListRegions", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Google configuration.", + "description": "Get all available regions for an organization.", "responses": { "200": { - "description": "OAuth2Google", + "description": "Regions list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Google" + "$ref": "#\/components\/schemas\/consoleRegionList" } } } @@ -45953,94 +45788,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Google", - "group": "oauth2", - "weight": 1170, + "method": "listRegions", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-google.md", + "demo": "organizations\/list-regions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-regions.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "prompt": { - "type": "array", - "description": "Array of Google OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. Must not be specified with other values. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "none", - "consent", - "select_account" - ], - "x-enum-name": "ProjectOAuth2GooglePrompt", - "x-enum-keys": [] - }, - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/keycloak": { - "patch": { - "summary": "Update project OAuth2 Keycloak", - "operationId": "projectUpdateOAuth2Keycloak", + "\/organizations\/{organizationId}\/roles": { + "get": { + "summary": "Get Scopes", + "operationId": "organizationsGetScopes", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Keycloak configuration.", + "description": "Get Scopes", "responses": { "200": { - "description": "OAuth2Keycloak", + "description": "Roles", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Keycloak" + "$ref": "#\/components\/schemas\/roles" } } } @@ -46048,90 +45848,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Keycloak", - "group": "oauth2", - "weight": 1197, + "method": "getScopes", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-keycloak.md", + "demo": "organizations\/get-scopes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-scopes.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "endpoint": { - "type": "string", - "description": "Domain of Keycloak instance. For example: keycloak.example.com", - "x-example": "<ENDPOINT>", - "x-nullable": true - }, - "realmName": { - "type": "string", - "description": "Keycloak realm name. For example: appwrite-realm", - "x-example": "<REALM_NAME>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Organization id", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "projectId", + "description": "Project id", + "required": false, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>", + "default": "" + }, + "in": "query" } - } + ] } }, - "\/project\/oauth2\/kick": { + "\/organizations\/{organizationId}\/taxId": { "patch": { - "summary": "Update project OAuth2 Kick", - "operationId": "projectUpdateOAuth2Kick", + "summary": "Set team's tax Id", + "operationId": "organizationsSetBillingTaxId", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Kick configuration.", + "description": "Set an organization's billing tax ID.", "responses": { "200": { - "description": "OAuth2Kick", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Kick" + "$ref": "#\/components\/schemas\/organization" } } } @@ -46139,30 +45919,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Kick", - "group": "oauth2", - "weight": 1200, + "method": "setBillingTaxId", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-kick.md", + "demo": "organizations\/set-billing-tax-id.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-tax-id.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -46171,46 +45961,37 @@ "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { + "taxId": { "type": "string", - "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, + "description": "Tax Id associated to billing.", + "x-example": "<TAX_ID>", "x-nullable": true } - } + }, + "required": [ + "taxId" + ] } } } } } }, - "\/project\/oauth2\/linkedin": { - "patch": { - "summary": "Update project OAuth2 Linkedin", - "operationId": "projectUpdateOAuth2Linkedin", + "\/organizations\/{organizationId}\/usage": { + "get": { + "summary": "Get team's usage data", + "operationId": "organizationsGetUsage", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Linkedin configuration.", + "description": "Get the usage data for an organization.", "responses": { "200": { - "description": "OAuth2Linkedin", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Linkedin" + "$ref": "#\/components\/schemas\/usageOrganization" } } } @@ -46218,163 +45999,81 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Linkedin", - "group": "oauth2", - "weight": 1184, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-linkedin.md", + "demo": "organizations\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "primaryClientSecret": { - "type": "string", - "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", - "x-example": "<PRIMARY_CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "Project": [] } - } - } - }, - "\/project\/oauth2\/microsoft": { - "patch": { - "summary": "Update project OAuth2 Microsoft", - "operationId": "projectUpdateOAuth2Microsoft", - "tags": [ - "project" ], - "description": "Update the project OAuth2 Microsoft configuration.", - "responses": { - "200": { - "description": "OAuth2Microsoft", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Microsoft" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateOAuth2Microsoft", - "group": "oauth2", - "weight": 1202, - "cookies": false, - "type": "", - "demo": "project\/update-o-auth-2-microsoft.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ + "parameters": [ { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string", - "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", - "x-example": "<APPLICATION_ID>", - "x-nullable": true - }, - "applicationSecret": { - "type": "string", - "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", - "x-example": "<APPLICATION_SECRET>", - "x-nullable": true - }, - "tenant": { - "type": "string", - "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", - "x-example": "<TENANT>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "startDate", + "description": "Starting date for the usage", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "in": "query" + }, + { + "name": "endDate", + "description": "End date for the usage", + "required": false, + "schema": { + "type": "string", + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "in": "query" } - } + ] } }, - "\/project\/oauth2\/notion": { + "\/organizations\/{organizationId}\/validate": { "patch": { - "summary": "Update project OAuth2 Notion", - "operationId": "projectUpdateOAuth2Notion", + "summary": "Validate payment for the organization after creation or upgrade", + "operationId": "organizationsValidatePayment", "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Notion configuration.", + "description": "Validate payment for team after creation or upgrade.", "responses": { "200": { - "description": "OAuth2Notion", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Notion" + "$ref": "#\/components\/schemas\/organization" } } } @@ -46382,30 +46081,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Notion", - "group": "oauth2", - "weight": 1181, + "method": "validatePayment", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-notion.md", + "demo": "organizations\/validate-payment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/validate-payment.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -46414,23 +46123,14 @@ "schema": { "type": "object", "properties": { - "oauthClientId": { - "type": "string", - "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", - "x-example": "<OAUTH_CLIENT_ID>", - "x-nullable": true - }, - "oauthClientSecret": { - "type": "string", - "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", - "x-example": "<OAUTH_CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } } } } @@ -46439,21 +46139,21 @@ } } }, - "\/project\/oauth2\/oidc": { - "patch": { - "summary": "Update project OAuth2 Oidc", - "operationId": "projectUpdateOAuth2Oidc", + "\/presences": { + "get": { + "summary": "List presences", + "operationId": "presencesList", "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 Oidc configuration.", + "description": "List presence logs. Expired entries are filtered out automatically.\n", "responses": { "200": { - "description": "OAuth2Oidc", + "description": "Presences List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Oidc" + "$ref": "#\/components\/schemas\/presenceList" } } } @@ -46461,22 +46161,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Oidc", - "group": "oauth2", - "weight": 1198, + "method": "list", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-oidc.md", + "demo": "presences\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.read", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/list.md", "auth": { "Project": [] } @@ -46484,83 +46186,66 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "wellKnownURL": { - "type": "string", - "description": "OpenID Connect well-known configuration URL. When provided, authorization, token, and user info endpoints can be discovered automatically. For example: https:\/\/myoauth.com\/.well-known\/openid-configuration", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "authorizationURL": { - "type": "string", - "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "tokenURL": { - "type": "string", - "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "userInfoURL": { - "type": "string", - "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "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" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" } - } + ] } }, - "\/project\/oauth2\/okta": { - "patch": { - "summary": "Update project OAuth2 Okta", - "operationId": "projectUpdateOAuth2Okta", + "\/presences\/usage": { + "get": { + "summary": "Get presence usage", + "operationId": "presencesGetUsage", "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 Okta configuration.", + "description": "Get presence usage metrics, including the current total of online users and historical online user counts for the selected time range.\n", "responses": { "200": { - "description": "OAuth2Okta", + "description": "UsagePresence", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Okta" + "$ref": "#\/components\/schemas\/usagePresence" } } } @@ -46568,90 +46253,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Okta", - "group": "oauth2", - "weight": 1199, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-okta.md", + "demo": "presences\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "domain": { - "type": "string", - "description": "Okta company domain. Required when enabling the provider. For example: trial-6400025.okta.com. Example of wrong value: trial-6400025-admin.okta.com, or https:\/\/trial-6400025.okta.com\/", - "x-example": null, - "x-nullable": true - }, - "authorizationServerId": { - "type": "string", - "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", - "x-example": "<AUTHORIZATION_SERVER_ID>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "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" } - } + ] } }, - "\/project\/oauth2\/paypal": { - "patch": { - "summary": "Update project OAuth2 Paypal", - "operationId": "projectUpdateOAuth2Paypal", + "\/presences\/{presenceId}": { + "get": { + "summary": "Get presence", + "operationId": "presencesGet", "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 Paypal configuration.", + "description": "Get a presence log by its unique ID. Entries whose `expiresAt` is in the past are treated as not found.\n", "responses": { "200": { - "description": "OAuth2Paypal", + "description": "Presence", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Paypal" + "$ref": "#\/components\/schemas\/presence" } } } @@ -46659,22 +46325,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Paypal", - "group": "oauth2", - "weight": 1191, + "method": "get", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-paypal.md", + "demo": "presences\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.read", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get.md", "auth": { "Project": [] } @@ -46682,55 +46350,38 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "secretKey": { - "type": "string", - "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "x-example": "<SECRET_KEY>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PRESENCE_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/oauth2\/paypalSandbox": { - "patch": { - "summary": "Update project OAuth2 PaypalSandbox", - "operationId": "projectUpdateOAuth2PaypalSandbox", + ] + }, + "put": { + "summary": "Upsert presence", + "operationId": "presencesUpsert", "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 PaypalSandbox configuration.", + "description": "Create or update a presence log by its user ID.\n", "responses": { "200": { - "description": "OAuth2Paypal", + "description": "Presence", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Paypal" + "$ref": "#\/components\/schemas\/presence" } } } @@ -46738,22 +46389,53 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2PaypalSandbox", - "group": "oauth2", - "weight": 1192, + "method": "upsert", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-paypal-sandbox.md", + "demo": "presences\/upsert.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.write", "platforms": [ - "console", - "server" + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/upsert.md", + "methods": [ + { + "name": "upsert", + "namespace": "presences", + "desc": "Upsert presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "userId", + "status", + "permissions", + "expiresAt", + "metadata" + ], + "required": [ + "presenceId", + "userId", + "status" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/presence" + } + ], + "description": "Create or update a presence log by its user ID.\n", + "demo": "presences\/upsert.md", + "public": true + } + ], "auth": { "Project": [] } @@ -46761,55 +46443,80 @@ "security": [ { "Project": [], - "Key": [] + "Session": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PRESENCE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID.", + "x-example": "<USER_ID>" }, - "secretKey": { + "status": { "type": "string", - "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "x-example": "<SECRET_KEY>", - "x-nullable": true + "description": "Presence status.", + "x-example": "<STATUS>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "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" + } + }, + "expiresAt": { + "type": "string", + "description": "Presence expiry datetime.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "type": "object", + "description": "Presence metadata object.", + "default": {}, + "x-example": "{}" } - } + }, + "required": [ + "status" + ] } } } } - } - }, - "\/project\/oauth2\/podio": { + }, "patch": { - "summary": "Update project OAuth2 Podio", - "operationId": "projectUpdateOAuth2Podio", + "summary": "Update presence", + "operationId": "presencesUpdate", "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 Podio configuration.", + "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", "responses": { "200": { - "description": "OAuth2Podio", + "description": "Presence", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Podio" + "$ref": "#\/components\/schemas\/presence" } } } @@ -46817,22 +46524,53 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Podio", - "group": "oauth2", - "weight": 1180, + "method": "update", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-podio.md", + "demo": "presences\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.write", "platforms": [ - "console", - "server" + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/update.md", + "methods": [ + { + "name": "updatePresence", + "namespace": "presences", + "desc": "Update presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "userId", + "status", + "expiresAt", + "metadata", + "permissions", + "purge" + ], + "required": [ + "presenceId", + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/presence" + } + ], + "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "demo": "presences\/update-presence.md", + "public": true + } + ], "auth": { "Project": [] } @@ -46840,7 +46578,19 @@ "security": [ { "Project": [], - "Key": [] + "Session": [] + } + ], + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PRESENCE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -46849,69 +46599,79 @@ "schema": { "type": "object", "properties": { - "clientId": { + "userId": { "type": "string", - "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "User ID.", + "x-example": "<USER_ID>" }, - "clientSecret": { + "status": { "type": "string", - "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true + "description": "Presence status.", + "x-example": "<STATUS>" }, - "enabled": { + "expiresAt": { + "type": "string", + "description": "Presence expiry datetime.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "type": "object", + "description": "Presence metadata object.", + "x-example": "{}" + }, + "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" + } + }, + "purge": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "When true, purge cached responses used by list presences endpoint.", + "default": false, + "x-example": false } } } } } } - } - }, - "\/project\/oauth2\/salesforce": { - "patch": { - "summary": "Update project OAuth2 Salesforce", - "operationId": "projectUpdateOAuth2Salesforce", + }, + "delete": { + "summary": "Delete presence", + "operationId": "presencesDelete", "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 Salesforce configuration.", + "description": "Delete a presence log by its unique ID.\n", "responses": { - "200": { - "description": "OAuth2Salesforce", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/oAuth2Salesforce" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Salesforce", - "group": "oauth2", - "weight": 1182, + "method": "delete", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-salesforce.md", + "demo": "presences\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/delete.md", "auth": { "Project": [] } @@ -46919,55 +46679,40 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "customerKey": { - "type": "string", - "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", - "x-example": "<CUSTOMER_KEY>", - "x-nullable": true - }, - "customerSecret": { - "type": "string", - "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", - "x-example": "<CUSTOMER_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PRESENCE_ID>" + }, + "in": "path" } - } + ] } }, - "\/project\/oauth2\/slack": { - "patch": { - "summary": "Update project OAuth2 Slack", - "operationId": "projectUpdateOAuth2Slack", + "\/project": { + "get": { + "summary": "Get project", + "operationId": "projectGet", "tags": [ "project" ], - "description": "Update the project OAuth2 Slack configuration.", + "description": "Get a project.", "responses": { "200": { - "description": "OAuth2Slack", + "description": "Project", "content": { - "application\/json": { + "": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Slack" + "$ref": "#\/components\/schemas\/project" } } } @@ -46975,16 +46720,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Slack", - "group": "oauth2", - "weight": 1179, + "method": "get", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-slack.md", + "demo": "project\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "project.read", "platforms": [ "console", "server" @@ -47000,53 +46744,64 @@ "Project": [], "Key": [] } + ] + }, + "delete": { + "summary": "Delete project", + "operationId": "projectDelete", + "tags": [ + "project" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "description": "Delete a project.", + "responses": { + "204": { + "description": "No content" } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": null, + "cookies": false, + "type": "", + "demo": "project\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] } }, - "\/project\/oauth2\/spotify": { + "\/project\/auth-methods\/{methodId}": { "patch": { - "summary": "Update project OAuth2 Spotify", - "operationId": "projectUpdateOAuth2Spotify", + "summary": "Update project auth method status", + "operationId": "projectUpdateAuthMethod", "tags": [ "project" ], - "description": "Update the project OAuth2 Spotify configuration.", + "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", "responses": { "200": { - "description": "OAuth2Spotify", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Spotify" + "$ref": "#\/components\/schemas\/project" } } } @@ -47054,16 +46809,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Spotify", - "group": "oauth2", - "weight": 1178, + "method": "updateAuthMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-spotify.md", + "demo": "project\/update-auth-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -47080,52 +46834,64 @@ "Key": [] } ], + "parameters": [ + { + "name": "methodId", + "description": "Auth Method ID. 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": "ProjectAuthMethodId" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, "enabled": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "Auth method status.", + "x-example": false } - } + }, + "required": [ + "enabled" + ] } } } } } }, - "\/project\/oauth2\/stripe": { - "patch": { - "summary": "Update project OAuth2 Stripe", - "operationId": "projectUpdateOAuth2Stripe", + "\/project\/keys": { + "get": { + "summary": "List project keys", + "operationId": "projectListKeys", "tags": [ "project" ], - "description": "Update the project OAuth2 Stripe configuration.", + "description": "Get a list of all API keys from the current project.", "responses": { "200": { - "description": "OAuth2Stripe", + "description": "API Keys List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Stripe" + "$ref": "#\/components\/schemas\/keyList" } } } @@ -47133,16 +46899,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Stripe", - "group": "oauth2", - "weight": 1177, + "method": "listKeys", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-stripe.md", + "demo": "project\/list-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "keys.read", "platforms": [ "console", "server" @@ -47159,52 +46924,47 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "apiSecretKey": { - "type": "string", - "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", - "x-example": "<API_SECRET_KEY>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "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: 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" } - } - } - }, - "\/project\/oauth2\/tradeshift": { - "patch": { - "summary": "Update project OAuth2 Tradeshift", - "operationId": "projectUpdateOAuth2Tradeshift", + ] + }, + "post": { + "summary": "Create project key", + "operationId": "projectCreateKey", "tags": [ "project" ], - "description": "Update the project OAuth2 Tradeshift configuration.", + "description": "Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create an ephemeral API key if you need a short-lived key instead.", "responses": { - "200": { - "description": "OAuth2Tradeshift", + "201": { + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + "$ref": "#\/components\/schemas\/key" } } } @@ -47212,16 +46972,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Tradeshift", - "group": "oauth2", - "weight": 1189, + "method": "createKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-tradeshift.md", + "demo": "project\/create-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "keys.write", "platforms": [ "console", "server" @@ -47244,46 +47003,155 @@ "schema": { "type": "object", "properties": { - "oauth2ClientId": { + "keyId": { "type": "string", - "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "x-example": "<OAUTH2_CLIENT_ID>", - "x-nullable": true + "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>" }, - "oauth2ClientSecret": { + "name": { "type": "string", - "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "x-example": "<OAUTH2_CLIENT_SECRET>", - "x-nullable": true + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "templates.read", + "templates.write", + "oauth2.read", + "oauth2.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes" + } + }, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } - } + }, + "required": [ + "keyId", + "name", + "scopes" + ] } } } } } }, - "\/project\/oauth2\/tradeshiftBox": { - "patch": { - "summary": "Update project OAuth2 Tradeshift Sandbox", - "operationId": "projectUpdateOAuth2TradeshiftSandbox", + "\/project\/keys\/ephemeral": { + "post": { + "summary": "Create ephemeral project key", + "operationId": "projectCreateEphemeralKey", "tags": [ "project" ], - "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", + "description": "Create a new ephemeral API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create a standard API key if you need a longer-lived key instead.", "responses": { - "200": { - "description": "OAuth2Tradeshift", + "201": { + "description": "Ephemeral Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + "$ref": "#\/components\/schemas\/ephemeralKey" } } } @@ -47291,16 +47159,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2TradeshiftSandbox", - "group": "oauth2", - "weight": 1190, + "method": "createEphemeralKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", + "demo": "project\/create-ephemeral-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "keys.write", "platforms": [ "console", "server" @@ -47323,46 +47190,143 @@ "schema": { "type": "object", "properties": { - "oauth2ClientId": { - "type": "string", - "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "x-example": "<OAUTH2_CLIENT_ID>", - "x-nullable": true - }, - "oauth2ClientSecret": { - "type": "string", - "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "x-example": "<OAUTH2_CLIENT_SECRET>", - "x-nullable": true + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "templates.read", + "templates.write", + "oauth2.read", + "oauth2.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes" + } }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "duration": { + "type": "integer", + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "x-example": "600", + "format": "int32" } - } + }, + "required": [ + "scopes", + "duration" + ] } } } } } }, - "\/project\/oauth2\/twitch": { - "patch": { - "summary": "Update project OAuth2 Twitch", - "operationId": "projectUpdateOAuth2Twitch", + "\/project\/keys\/{keyId}": { + "get": { + "summary": "Get project key", + "operationId": "projectGetKey", "tags": [ "project" ], - "description": "Update the project OAuth2 Twitch configuration.", + "description": "Get a key by its unique ID. ", "responses": { "200": { - "description": "OAuth2Twitch", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Twitch" + "$ref": "#\/components\/schemas\/key" } } } @@ -47370,16 +47334,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Twitch", - "group": "oauth2", - "weight": 1176, + "method": "getKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-twitch.md", + "demo": "project\/get-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "keys.read", "platforms": [ "console", "server" @@ -47396,52 +47359,33 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" } - } - } - }, - "\/project\/oauth2\/wordpress": { - "patch": { - "summary": "Update project OAuth2 WordPress", - "operationId": "projectUpdateOAuth2WordPress", + ] + }, + "put": { + "summary": "Update project key", + "operationId": "projectUpdateKey", "tags": [ "project" ], - "description": "Update the project OAuth2 WordPress configuration.", + "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": "OAuth2WordPress", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2WordPress" + "$ref": "#\/components\/schemas\/key" } } } @@ -47449,16 +47393,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2WordPress", - "group": "oauth2", - "weight": 1175, + "method": "updateKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-word-press.md", + "demo": "project\/update-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "keys.write", "platforms": [ "console", "server" @@ -47475,52 +47418,219 @@ "Key": [] } ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { + "name": { "type": "string", - "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "templates.read", + "templates.write", + "oauth2.read", + "oauth2.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes" + } }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } - } + }, + "required": [ + "name", + "scopes" + ] } } } } - } - }, - "\/project\/oauth2\/x": { - "patch": { - "summary": "Update project OAuth2 X", - "operationId": "projectUpdateOAuth2X", + }, + "delete": { + "summary": "Delete project key", + "operationId": "projectDeleteKey", "tags": [ "project" ], - "description": "Update the project OAuth2 X configuration.", + "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", + "cookies": false, + "type": "", + "demo": "project\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/project\/labels": { + "put": { + "summary": "Update project labels", + "operationId": "projectUpdateLabels", + "tags": [ + "project" + ], + "description": "Update the project labels. Labels can be used to easily filter projects in an organization.", "responses": { "200": { - "description": "OAuth2X", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2X" + "$ref": "#\/components\/schemas\/project" } } } @@ -47528,16 +47638,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2X", - "group": "oauth2", - "weight": 1174, + "method": "updateLabels", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2x.md", + "demo": "project\/update-labels.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -47560,46 +47669,39 @@ "schema": { "type": "object", "properties": { - "customerKey": { - "type": "string", - "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", - "x-example": "<CUSTOMER_KEY>", - "x-nullable": true - }, - "secretKey": { - "type": "string", - "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", - "x-example": "<SECRET_KEY>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "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" + ] } } } } } }, - "\/project\/oauth2\/yahoo": { - "patch": { - "summary": "Update project OAuth2 Yahoo", - "operationId": "projectUpdateOAuth2Yahoo", + "\/project\/mock-phones": { + "get": { + "summary": "List project mock phones", + "operationId": "projectListMockPhones", "tags": [ "project" ], - "description": "Update the project OAuth2 Yahoo configuration.", + "description": "Get a list of all mock phones in the project. This endpoint returns an array of all mock phones and their OTPs.", "responses": { "200": { - "description": "OAuth2Yahoo", + "description": "Mock Numbers List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Yahoo" + "$ref": "#\/components\/schemas\/mockNumberList" } } } @@ -47607,16 +47709,88 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Yahoo", - "group": "oauth2", - "weight": 1183, + "method": "listMockPhones", + "group": "mocks", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-yahoo.md", + "demo": "project\/list-mock-phones.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "mocks.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). 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" + } + ] + }, + "post": { + "summary": "Create project mock phone", + "operationId": "projectCreateMockPhone", + "tags": [ + "project" + ], + "description": "Create a new mock phone for your project. Use this endpoint to register a mock phone number and its sign-in OTP for your testers.", + "responses": { + "201": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createMockPhone", + "group": "mocks", + "cookies": false, + "type": "", + "demo": "project\/create-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", "platforms": [ "console", "server" @@ -47639,46 +47813,43 @@ "schema": { "type": "object", "properties": { - "clientId": { + "number": { "type": "string", - "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", + "x-example": "+12065550100", + "format": "phone" }, - "clientSecret": { + "otp": { "type": "string", - "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "x-example": "<OTP>" } - } + }, + "required": [ + "number", + "otp" + ] } } } } } }, - "\/project\/oauth2\/yandex": { - "patch": { - "summary": "Update project OAuth2 Yandex", - "operationId": "projectUpdateOAuth2Yandex", + "\/project\/mock-phones\/{number}": { + "get": { + "summary": "Get project mock phone", + "operationId": "projectGetMockPhone", "tags": [ "project" ], - "description": "Update the project OAuth2 Yandex configuration.", + "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", "responses": { "200": { - "description": "OAuth2Yandex", + "description": "Mock Number", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Yandex" + "$ref": "#\/components\/schemas\/mockNumber" } } } @@ -47686,16 +47857,75 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Yandex", - "group": "oauth2", - "weight": 1173, + "method": "getMockPhone", + "group": "mocks", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-yandex.md", + "demo": "project\/get-mock-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "mocks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "schema": { + "type": "string", + "format": "phone", + "x-example": "+12065550100" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update project mock phone", + "operationId": "projectUpdateMockPhone", + "tags": [ + "project" + ], + "description": "Update a mock phone by its unique number. Use this endpoint to update the mock phone's OTP.", + "responses": { + "200": { + "description": "Mock Number", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mockNumber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateMockPhone", + "group": "mocks", + "cookies": false, + "type": "", + "demo": "project\/update-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", "platforms": [ "console", "server" @@ -47712,52 +47942,108 @@ "Key": [] } ], + "parameters": [ + { + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "schema": { + "type": "string", + "format": "phone", + "x-example": "+12065550100" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { + "otp": { "type": "string", - "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "x-example": "<OTP>" } - } + }, + "required": [ + "otp" + ] } } } } + }, + "delete": { + "summary": "Delete project mock phone", + "operationId": "projectDeleteMockPhone", + "tags": [ + "project" + ], + "description": "Delete a mock phone by its unique number. This endpoint removes the mock phone and its OTP configuration from the project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteMockPhone", + "group": "mocks", + "cookies": false, + "type": "", + "demo": "project\/delete-mock-phone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "mocks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "schema": { + "type": "string", + "format": "phone", + "x-example": "+12065550100" + }, + "in": "path" + } + ] } }, - "\/project\/oauth2\/zoho": { - "patch": { - "summary": "Update project OAuth2 Zoho", - "operationId": "projectUpdateOAuth2Zoho", + "\/project\/oauth2": { + "get": { + "summary": "List project OAuth2 providers", + "operationId": "projectListOAuth2Providers", "tags": [ "project" ], - "description": "Update the project OAuth2 Zoho configuration.", + "description": "Get a list of all OAuth2 providers supported by the server, along with the project's configuration for each. Credential fields are write-only and always returned empty.", "responses": { "200": { - "description": "OAuth2Zoho", + "description": "OAuth2 Providers List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Zoho" + "$ref": "#\/components\/schemas\/oAuth2ProviderList" } } } @@ -47765,16 +48051,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Zoho", + "method": "listOAuth2Providers", "group": "oauth2", - "weight": 1172, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-zoho.md", + "demo": "project\/list-o-auth-2-providers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "oauth2.read", "platforms": [ "console", "server" @@ -47791,52 +48076,49 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "x-example": false, - "x-nullable": true - } - } - } - } + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } - } + ] } }, - "\/project\/oauth2\/zoom": { + "\/project\/oauth2\/amazon": { "patch": { - "summary": "Update project OAuth2 Zoom", - "operationId": "projectUpdateOAuth2Zoom", + "summary": "Update project OAuth2 Amazon", + "operationId": "projectUpdateOAuth2Amazon", "tags": [ "project" ], - "description": "Update the project OAuth2 Zoom configuration.", + "description": "Update the project OAuth2 Amazon configuration.", "responses": { "200": { - "description": "OAuth2Zoom", + "description": "OAuth2Amazon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/oAuth2Zoom" + "$ref": "#\/components\/schemas\/oAuth2Amazon" } } } @@ -47844,12 +48126,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Zoom", + "method": "updateOAuth2Amazon", "group": "oauth2", - "weight": 1171, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-zoom.md", + "demo": "project\/update-o-auth-2-amazon.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -47878,13 +48159,13 @@ "properties": { "clientId": { "type": "string", - "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", + "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", - "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", + "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", "x-example": "<CLIENT_SECRET>", "x-nullable": true }, @@ -47901,189 +48182,21 @@ } } }, - "\/project\/oauth2\/{providerId}": { - "get": { - "summary": "Get project OAuth2 provider", - "operationId": "projectGetOAuth2Provider", + "\/project\/oauth2\/apple": { + "patch": { + "summary": "Update project OAuth2 Apple", + "operationId": "projectUpdateOAuth2Apple", "tags": [ "project" ], - "description": "Get a single OAuth2 provider configuration. Credential fields (client secret, p8 file, key\/team IDs) are write-only and always returned empty.", + "description": "Update the project OAuth2 Apple configuration.", "responses": { "200": { - "description": "OAuth2GitHub, or OAuth2Discord, or OAuth2Figma, or OAuth2Dropbox, or OAuth2Dailymotion, or OAuth2Bitbucket, or OAuth2Bitly, or OAuth2Box, or OAuth2Autodesk, or OAuth2Google, or OAuth2Zoom, or OAuth2Zoho, or OAuth2Yandex, or OAuth2X, or OAuth2WordPress, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2Linkedin, or OAuth2Disqus, or OAuth2Amazon, or OAuth2Etsy, or OAuth2Facebook, or OAuth2Tradeshift, or OAuth2Paypal, or OAuth2Gitlab, or OAuth2Authentik, or OAuth2Auth0, or OAuth2FusionAuth, or OAuth2Keycloak, or OAuth2Oidc, or OAuth2Apple, or OAuth2Okta, or OAuth2Kick, or OAuth2Microsoft", + "description": "OAuth2Apple", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/oAuth2Github" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Discord" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Figma" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Dropbox" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Dailymotion" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Bitbucket" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Bitly" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Box" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Autodesk" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Google" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Zoom" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Zoho" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Yandex" - }, - { - "$ref": "#\/components\/schemas\/oAuth2X" - }, - { - "$ref": "#\/components\/schemas\/oAuth2WordPress" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Twitch" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Stripe" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Spotify" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Slack" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Podio" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Notion" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Salesforce" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Yahoo" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Linkedin" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Disqus" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Amazon" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Etsy" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Facebook" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Tradeshift" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Paypal" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Gitlab" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Authentik" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Auth0" - }, - { - "$ref": "#\/components\/schemas\/oAuth2FusionAuth" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Keycloak" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Oidc" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Apple" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Okta" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Kick" - }, - { - "$ref": "#\/components\/schemas\/oAuth2Microsoft" - } - ], - "discriminator": { - "propertyName": "$id", - "mapping": { - "github": "#\/components\/schemas\/oAuth2Github", - "discord": "#\/components\/schemas\/oAuth2Discord", - "figma": "#\/components\/schemas\/oAuth2Figma", - "dropbox": "#\/components\/schemas\/oAuth2Dropbox", - "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", - "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", - "bitly": "#\/components\/schemas\/oAuth2Bitly", - "box": "#\/components\/schemas\/oAuth2Box", - "autodesk": "#\/components\/schemas\/oAuth2Autodesk", - "google": "#\/components\/schemas\/oAuth2Google", - "zoom": "#\/components\/schemas\/oAuth2Zoom", - "zoho": "#\/components\/schemas\/oAuth2Zoho", - "yandex": "#\/components\/schemas\/oAuth2Yandex", - "x": "#\/components\/schemas\/oAuth2X", - "wordpress": "#\/components\/schemas\/oAuth2WordPress", - "twitch": "#\/components\/schemas\/oAuth2Twitch", - "stripe": "#\/components\/schemas\/oAuth2Stripe", - "spotify": "#\/components\/schemas\/oAuth2Spotify", - "slack": "#\/components\/schemas\/oAuth2Slack", - "podio": "#\/components\/schemas\/oAuth2Podio", - "notion": "#\/components\/schemas\/oAuth2Notion", - "salesforce": "#\/components\/schemas\/oAuth2Salesforce", - "yahoo": "#\/components\/schemas\/oAuth2Yahoo", - "linkedin": "#\/components\/schemas\/oAuth2Linkedin", - "disqus": "#\/components\/schemas\/oAuth2Disqus", - "amazon": "#\/components\/schemas\/oAuth2Amazon", - "etsy": "#\/components\/schemas\/oAuth2Etsy", - "facebook": "#\/components\/schemas\/oAuth2Facebook", - "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", - "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", - "paypal": "#\/components\/schemas\/oAuth2Paypal", - "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", - "gitlab": "#\/components\/schemas\/oAuth2Gitlab", - "authentik": "#\/components\/schemas\/oAuth2Authentik", - "auth0": "#\/components\/schemas\/oAuth2Auth0", - "fusionauth": "#\/components\/schemas\/oAuth2FusionAuth", - "keycloak": "#\/components\/schemas\/oAuth2Keycloak", - "oidc": "#\/components\/schemas\/oAuth2Oidc", - "apple": "#\/components\/schemas\/oAuth2Apple", - "okta": "#\/components\/schemas\/oAuth2Okta", - "kick": "#\/components\/schemas\/oAuth2Kick", - "microsoft": "#\/components\/schemas\/oAuth2Microsoft" - } - } + "$ref": "#\/components\/schemas\/oAuth2Apple" } } } @@ -48091,16 +48204,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getOAuth2Provider", + "method": "updateOAuth2Apple", "group": "oauth2", - "weight": 1160, "cookies": false, "type": "", - "demo": "project\/get-o-auth-2-provider.md", + "demo": "project\/update-o-auth-2-apple.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48117,84 +48229,64 @@ "Key": [] } ], - "parameters": [ - { - "name": "providerId", - "description": "OAuth2 provider key. For example: github, google, apple.", - "required": true, - "schema": { - "type": "string", - "x-example": "amazon", - "enum": [ - "amazon", - "apple", - "auth0", - "authentik", - "autodesk", - "bitbucket", - "bitly", - "box", - "dailymotion", - "discord", - "disqus", - "dropbox", - "etsy", - "facebook", - "figma", - "fusionauth", - "github", - "gitlab", - "google", - "keycloak", - "kick", - "linkedin", - "microsoft", - "notion", - "oidc", - "okta", - "paypal", - "paypalSandbox", - "podio", - "salesforce", - "slack", - "spotify", - "stripe", - "tradeshift", - "tradeshiftBox", - "twitch", - "wordpress", - "x", - "yahoo", - "yammer", - "yandex", - "zoho", - "zoom", - "githubImagine", - "googleImagine" - ], - "x-enum-name": "ProjectOAuthProviderId", - "x-enum-keys": [] - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "serviceId": { + "type": "string", + "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", + "x-example": "<SERVICE_ID>", + "x-nullable": true + }, + "keyId": { + "type": "string", + "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", + "x-example": "<KEY_ID>", + "x-nullable": true + }, + "teamId": { + "type": "string", + "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", + "x-example": "<TEAM_ID>", + "x-nullable": true + }, + "p8File": { + "type": "string", + "description": "Contents of the Apple OAuth2 app .p8 private key file. The secret key wrapped by the PEM markers is 200 characters long. For example: -----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", + "x-example": "<P8_FILE>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] + } } }, - "\/project\/platforms": { - "get": { - "summary": "List project platforms", - "operationId": "projectListPlatforms", + "\/project\/oauth2\/auth0": { + "patch": { + "summary": "Update project OAuth2 Auth0", + "operationId": "projectUpdateOAuth2Auth0", "tags": [ "project" ], - "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", + "description": "Update the project OAuth2 Auth0 configuration.", "responses": { "200": { - "description": "Platforms List", + "description": "OAuth2Auth0", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformList" + "$ref": "#\/components\/schemas\/oAuth2Auth0" } } } @@ -48202,16 +48294,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listPlatforms", - "group": "platforms", - "weight": 1129, + "method": "updateOAuth2Auth0", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/list-platforms.md", + "demo": "project\/update-o-auth-2-auth-0.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48228,49 +48319,58 @@ "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: type, name, hostname, bundleIdentifier, applicationId, packageIdentifierName, packageName", - "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": { + "clientId": { + "type": "string", + "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of Auth0 instance. For example: example.us.auth0.com", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] + } } }, - "\/project\/platforms\/android": { - "post": { - "summary": "Create project Android platform", - "operationId": "projectCreateAndroidPlatform", + "\/project\/oauth2\/authentik": { + "patch": { + "summary": "Update project OAuth2 Authentik", + "operationId": "projectUpdateOAuth2Authentik", "tags": [ "project" ], - "description": "Create a new Android platform for your project. Use this endpoint to register a new Android platform where your users will run your application which will interact with the Appwrite API.", + "description": "Update the project OAuth2 Authentik configuration.", "responses": { - "201": { - "description": "Platform Android", + "200": { + "description": "OAuth2Authentik", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformAndroid" + "$ref": "#\/components\/schemas\/oAuth2Authentik" } } } @@ -48278,16 +48378,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createAndroidPlatform", - "group": "platforms", - "weight": 1133, + "method": "updateOAuth2Authentik", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-android-platform.md", + "demo": "project\/update-o-auth-2-authentik.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48310,48 +48409,52 @@ "schema": { "type": "object", "properties": { - "platformId": { + "clientId": { "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "name": { + "clientSecret": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true }, - "applicationId": { + "endpoint": { "type": "string", - "description": "Android application ID. Max length: 256 chars.", - "x-example": "<APPLICATION_ID>" + "description": "Domain of Authentik instance. For example: example.authentik.com", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "platformId", - "name", - "applicationId" - ] + } } } } } } }, - "\/project\/platforms\/android\/{platformId}": { - "put": { - "summary": "Update project Android platform", - "operationId": "projectUpdateAndroidPlatform", + "\/project\/oauth2\/autodesk": { + "patch": { + "summary": "Update project OAuth2 Autodesk", + "operationId": "projectUpdateOAuth2Autodesk", "tags": [ "project" ], - "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", + "description": "Update the project OAuth2 Autodesk configuration.", "responses": { "200": { - "description": "Platform Android", + "description": "OAuth2Autodesk", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformAndroid" + "$ref": "#\/components\/schemas\/oAuth2Autodesk" } } } @@ -48359,16 +48462,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAndroidPlatform", - "group": "platforms", - "weight": 1138, + "method": "updateOAuth2Autodesk", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-android-platform.md", + "demo": "project\/update-o-auth-2-autodesk.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48385,60 +48487,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { + "clientId": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "applicationId": { + "clientSecret": { "type": "string", - "description": "Android application ID. Max length: 256 chars.", - "x-example": "<APPLICATION_ID>" + "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "name", - "applicationId" - ] + } } } } } } }, - "\/project\/platforms\/apple": { - "post": { - "summary": "Create project Apple platform", - "operationId": "projectCreateApplePlatform", + "\/project\/oauth2\/bitbucket": { + "patch": { + "summary": "Update project OAuth2 Bitbucket", + "operationId": "projectUpdateOAuth2Bitbucket", "tags": [ "project" ], - "description": "Create a new Apple platform for your project. Use this endpoint to register a new Apple platform where your users will run your application which will interact with the Appwrite API.", + "description": "Update the project OAuth2 Bitbucket configuration.", "responses": { - "201": { - "description": "Platform Apple", + "200": { + "description": "OAuth2Bitbucket", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformApple" + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" } } } @@ -48446,16 +48540,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createApplePlatform", - "group": "platforms", - "weight": 1132, + "method": "updateOAuth2Bitbucket", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-apple-platform.md", + "demo": "project\/update-o-auth-2-bitbucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48478,48 +48571,46 @@ "schema": { "type": "object", "properties": { - "platformId": { + "key": { "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", + "x-example": "<KEY>", + "x-nullable": true }, - "name": { + "secret": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", + "x-example": "<SECRET>", + "x-nullable": true }, - "bundleIdentifier": { - "type": "string", - "description": "Apple bundle identifier. Max length: 256 chars.", - "x-example": "<BUNDLE_IDENTIFIER>" + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "platformId", - "name", - "bundleIdentifier" - ] + } } } } } } }, - "\/project\/platforms\/apple\/{platformId}": { - "put": { - "summary": "Update project Apple platform", - "operationId": "projectUpdateApplePlatform", + "\/project\/oauth2\/bitly": { + "patch": { + "summary": "Update project OAuth2 Bitly", + "operationId": "projectUpdateOAuth2Bitly", "tags": [ "project" ], - "description": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", + "description": "Update the project OAuth2 Bitly configuration.", "responses": { "200": { - "description": "Platform Apple", + "description": "OAuth2Bitly", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformApple" + "$ref": "#\/components\/schemas\/oAuth2Bitly" } } } @@ -48527,16 +48618,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateApplePlatform", - "group": "platforms", - "weight": 1137, + "method": "updateOAuth2Bitly", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-apple-platform.md", + "demo": "project\/update-o-auth-2-bitly.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48553,60 +48643,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { + "clientId": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "bundleIdentifier": { + "clientSecret": { "type": "string", - "description": "Apple bundle identifier. Max length: 256 chars.", - "x-example": "<BUNDLE_IDENTIFIER>" + "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "name", - "bundleIdentifier" - ] + } } } } } } }, - "\/project\/platforms\/linux": { - "post": { - "summary": "Create project Linux platform", - "operationId": "projectCreateLinuxPlatform", + "\/project\/oauth2\/box": { + "patch": { + "summary": "Update project OAuth2 Box", + "operationId": "projectUpdateOAuth2Box", "tags": [ "project" ], - "description": "Create a new Linux platform for your project. Use this endpoint to register a new Linux platform where your users will run your application which will interact with the Appwrite API.", + "description": "Update the project OAuth2 Box configuration.", "responses": { - "201": { - "description": "Platform Linux", + "200": { + "description": "OAuth2Box", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformLinux" + "$ref": "#\/components\/schemas\/oAuth2Box" } } } @@ -48614,16 +48696,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLinuxPlatform", - "group": "platforms", - "weight": 1135, + "method": "updateOAuth2Box", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-linux-platform.md", + "demo": "project\/update-o-auth-2-box.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48646,48 +48727,46 @@ "schema": { "type": "object", "properties": { - "platformId": { + "clientId": { "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "name": { + "clientSecret": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true }, - "packageName": { - "type": "string", - "description": "Linux package name. Max length: 256 chars.", - "x-example": "<PACKAGE_NAME>" + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "platformId", - "name", - "packageName" - ] + } } } } } } }, - "\/project\/platforms\/linux\/{platformId}": { - "put": { - "summary": "Update project Linux platform", - "operationId": "projectUpdateLinuxPlatform", + "\/project\/oauth2\/dailymotion": { + "patch": { + "summary": "Update project OAuth2 Dailymotion", + "operationId": "projectUpdateOAuth2Dailymotion", "tags": [ "project" ], - "description": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", + "description": "Update the project OAuth2 Dailymotion configuration.", "responses": { "200": { - "description": "Platform Linux", + "description": "OAuth2Dailymotion", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformLinux" + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" } } } @@ -48695,16 +48774,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLinuxPlatform", - "group": "platforms", - "weight": 1140, + "method": "updateOAuth2Dailymotion", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-linux-platform.md", + "demo": "project\/update-o-auth-2-dailymotion.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48721,60 +48799,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { + "apiKey": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", + "x-example": "<API_KEY>", + "x-nullable": true }, - "packageName": { + "apiSecret": { "type": "string", - "description": "Linux package name. Max length: 256 chars.", - "x-example": "<PACKAGE_NAME>" + "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", + "x-example": "<API_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "name", - "packageName" - ] + } } } } } } }, - "\/project\/platforms\/web": { - "post": { - "summary": "Create project web platform", - "operationId": "projectCreateWebPlatform", + "\/project\/oauth2\/discord": { + "patch": { + "summary": "Update project OAuth2 Discord", + "operationId": "projectUpdateOAuth2Discord", "tags": [ "project" ], - "description": "Create a new web 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": "Update the project OAuth2 Discord configuration.", "responses": { - "201": { - "description": "Platform Web", + "200": { + "description": "OAuth2Discord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWeb" + "$ref": "#\/components\/schemas\/oAuth2Discord" } } } @@ -48782,16 +48852,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createWebPlatform", - "group": "platforms", - "weight": 1131, + "method": "updateOAuth2Discord", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-web-platform.md", + "demo": "project\/update-o-auth-2-discord.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48814,48 +48883,46 @@ "schema": { "type": "object", "properties": { - "platformId": { + "clientId": { "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "name": { + "clientSecret": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true }, - "hostname": { - "type": "string", - "description": "Platform web hostname. Max length: 256 chars.", - "x-example": "app.example.com" + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "platformId", - "name", - "hostname" - ] + } } } } } } }, - "\/project\/platforms\/web\/{platformId}": { - "put": { - "summary": "Update project web platform", - "operationId": "projectUpdateWebPlatform", + "\/project\/oauth2\/disqus": { + "patch": { + "summary": "Update project OAuth2 Disqus", + "operationId": "projectUpdateOAuth2Disqus", "tags": [ "project" ], - "description": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", + "description": "Update the project OAuth2 Disqus configuration.", "responses": { "200": { - "description": "Platform Web", + "description": "OAuth2Disqus", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWeb" + "$ref": "#\/components\/schemas\/oAuth2Disqus" } } } @@ -48863,16 +48930,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateWebPlatform", - "group": "platforms", - "weight": 1136, + "method": "updateOAuth2Disqus", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-web-platform.md", + "demo": "project\/update-o-auth-2-disqus.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48889,60 +48955,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { + "publicKey": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "x-example": "<PUBLIC_KEY>", + "x-nullable": true }, - "hostname": { + "secretKey": { "type": "string", - "description": "Platform web hostname. Max length: 256 chars.", - "x-example": "app.example.com" + "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "name", - "hostname" - ] + } } } } } } }, - "\/project\/platforms\/windows": { - "post": { - "summary": "Create project Windows platform", - "operationId": "projectCreateWindowsPlatform", + "\/project\/oauth2\/dropbox": { + "patch": { + "summary": "Update project OAuth2 Dropbox", + "operationId": "projectUpdateOAuth2Dropbox", "tags": [ "project" ], - "description": "Create a new Windows platform for your project. Use this endpoint to register a new Windows platform where your users will run your application which will interact with the Appwrite API.", + "description": "Update the project OAuth2 Dropbox configuration.", "responses": { - "201": { - "description": "Platform Windows", + "200": { + "description": "OAuth2Dropbox", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWindows" + "$ref": "#\/components\/schemas\/oAuth2Dropbox" } } } @@ -48950,16 +49008,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createWindowsPlatform", - "group": "platforms", - "weight": 1134, + "method": "updateOAuth2Dropbox", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-windows-platform.md", + "demo": "project\/update-o-auth-2-dropbox.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48982,48 +49039,46 @@ "schema": { "type": "object", "properties": { - "platformId": { + "appKey": { "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", + "x-example": "<APP_KEY>", + "x-nullable": true }, - "name": { + "appSecret": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", + "x-example": "<APP_SECRET>", + "x-nullable": true }, - "packageIdentifierName": { - "type": "string", - "description": "Windows package identifier name. Max length: 256 chars.", - "x-example": "<PACKAGE_IDENTIFIER_NAME>" + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "platformId", - "name", - "packageIdentifierName" - ] + } } } } } } }, - "\/project\/platforms\/windows\/{platformId}": { - "put": { - "summary": "Update project Windows platform", - "operationId": "projectUpdateWindowsPlatform", + "\/project\/oauth2\/etsy": { + "patch": { + "summary": "Update project OAuth2 Etsy", + "operationId": "projectUpdateOAuth2Etsy", "tags": [ "project" ], - "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", + "description": "Update the project OAuth2 Etsy configuration.", "responses": { "200": { - "description": "Platform Windows", + "description": "OAuth2Etsy", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformWindows" + "$ref": "#\/components\/schemas\/oAuth2Etsy" } } } @@ -49031,16 +49086,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateWindowsPlatform", - "group": "platforms", - "weight": 1139, + "method": "updateOAuth2Etsy", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-windows-platform.md", + "demo": "project\/update-o-auth-2-etsy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49057,86 +49111,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { + "keyString": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", + "x-example": "<KEY_STRING>", + "x-nullable": true }, - "packageIdentifierName": { + "sharedSecret": { "type": "string", - "description": "Windows package identifier name. Max length: 256 chars.", - "x-example": "<PACKAGE_IDENTIFIER_NAME>" + "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", + "x-example": "<SHARED_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "name", - "packageIdentifierName" - ] + } } } } } } }, - "\/project\/platforms\/{platformId}": { - "get": { - "summary": "Get project platform", - "operationId": "projectGetPlatform", + "\/project\/oauth2\/facebook": { + "patch": { + "summary": "Update project OAuth2 Facebook", + "operationId": "projectUpdateOAuth2Facebook", "tags": [ "project" ], - "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations.", + "description": "Update the project OAuth2 Facebook configuration.", "responses": { "200": { - "description": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", + "description": "OAuth2Facebook", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/platformWeb" - }, - { - "$ref": "#\/components\/schemas\/platformApple" - }, - { - "$ref": "#\/components\/schemas\/platformAndroid" - }, - { - "$ref": "#\/components\/schemas\/platformWindows" - }, - { - "$ref": "#\/components\/schemas\/platformLinux" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "web": "#\/components\/schemas\/platformWeb", - "apple": "#\/components\/schemas\/platformApple", - "android": "#\/components\/schemas\/platformAndroid", - "windows": "#\/components\/schemas\/platformWindows", - "linux": "#\/components\/schemas\/platformLinux" - } - } + "$ref": "#\/components\/schemas\/oAuth2Facebook" } } } @@ -49144,16 +49164,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPlatform", - "group": "platforms", - "weight": 1130, + "method": "updateOAuth2Facebook", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get-platform.md", + "demo": "project\/update-o-auth-2-facebook.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49170,88 +49189,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "appId": { + "type": "string", + "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", + "x-example": "<APP_ID>", + "x-nullable": true + }, + "appSecret": { + "type": "string", + "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", + "x-example": "<APP_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] - }, - "delete": { - "summary": "Delete project platform", - "operationId": "projectDeletePlatform", + } + } + }, + "\/project\/oauth2\/figma": { + "patch": { + "summary": "Update project OAuth2 Figma", + "operationId": "projectUpdateOAuth2Figma", "tags": [ "project" ], - "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": 1141, - "cookies": false, - "type": "", - "demo": "project\/delete-platform.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" - }, - "in": "path" - } - ] - } - }, - "\/project\/policies": { - "get": { - "summary": "List project policies", - "operationId": "projectListPolicies", - "tags": [ - "project" - ], - "description": "Get a list of all project policies and their current configuration.", + "description": "Update the project OAuth2 Figma configuration.", "responses": { "200": { - "description": "Policies List", + "description": "OAuth2Figma", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/policyList" + "$ref": "#\/components\/schemas\/oAuth2Figma" } } } @@ -49259,19 +49242,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listPolicies", - "group": "policies", - "weight": 1147, + "method": "updateOAuth2Figma", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/list-policies.md", + "demo": "project\/update-o-auth-2-figma.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "project.policies.read" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49288,49 +49267,52 @@ "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). 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": { + "clientId": { + "type": "string", + "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] + } } }, - "\/project\/policies\/deny-aliased-email": { + "\/project\/oauth2\/fusionauth": { "patch": { - "summary": "Update deny aliased email policy", - "operationId": "projectUpdateDenyAliasedEmailPolicy", + "summary": "Update project OAuth2 FusionAuth", + "operationId": "projectUpdateOAuth2FusionAuth", "tags": [ "project" ], - "description": "Configures if aliased emails such as subaddresses and emails with suffixes are denied during new users sign-ups and email updates.", + "description": "Update the project OAuth2 FusionAuth configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2FusionAuth", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" } } } @@ -49338,19 +49320,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDenyAliasedEmailPolicy", - "group": "policies", - "weight": 1203, + "method": "updateOAuth2FusionAuth", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-deny-aliased-email-policy.md", + "demo": "project\/update-o-auth-2-fusion-auth.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49373,36 +49351,52 @@ "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Set whether or not to block aliased emails during signup and email updates.", - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } } } } }, - "\/project\/policies\/deny-disposable-email": { + "\/project\/oauth2\/github": { "patch": { - "summary": "Update deny disposable email policy", - "operationId": "projectUpdateDenyDisposableEmailPolicy", + "summary": "Update project OAuth2 GitHub", + "operationId": "projectUpdateOAuth2GitHub", "tags": [ "project" ], - "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", + "description": "Update the project OAuth2 GitHub configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2GitHub", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Github" } } } @@ -49410,19 +49404,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDenyDisposableEmailPolicy", - "group": "policies", - "weight": 1204, + "method": "updateOAuth2GitHub", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-deny-disposable-email-policy.md", + "demo": "project\/update-o-auth-2-git-hub.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49445,36 +49435,46 @@ "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Set whether or not to block disposable email addresses during signup and email updates.", - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } } } } }, - "\/project\/policies\/deny-free-email": { + "\/project\/oauth2\/gitlab": { "patch": { - "summary": "Update deny free email policy", - "operationId": "projectUpdateDenyFreeEmailPolicy", + "summary": "Update project OAuth2 Gitlab", + "operationId": "projectUpdateOAuth2Gitlab", "tags": [ "project" ], - "description": "Configures if emails from free providers such as Gmail or Yahoo are denied during new users sign-ups and email updates.", + "description": "Update the project OAuth2 Gitlab configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Gitlab", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Gitlab" } } } @@ -49482,19 +49482,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDenyFreeEmailPolicy", - "group": "policies", - "weight": 1205, + "method": "updateOAuth2Gitlab", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-deny-free-email-policy.md", + "demo": "project\/update-o-auth-2-gitlab.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49517,36 +49513,53 @@ "schema": { "type": "object", "properties": { + "applicationId": { + "type": "string", + "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "x-example": "<APPLICATION_ID>", + "x-nullable": true + }, + "secret": { + "type": "string", + "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "x-example": "<SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Set whether or not to block free email addresses during signup and email updates.", - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } } } } }, - "\/project\/policies\/membership-privacy": { + "\/project\/oauth2\/google": { "patch": { - "summary": "Update membership privacy policy", - "operationId": "projectUpdateMembershipPrivacyPolicy", + "summary": "Update project OAuth2 Google", + "operationId": "projectUpdateOAuth2Google", "tags": [ "project" ], - "description": "Updating this policy allows you to control if team members can see other members information. When enabled, all team members can see ID, name, email, phone number, and MFA status of other members..", + "description": "Update the project OAuth2 Google configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Google", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Google" } } } @@ -49554,19 +49567,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMembershipPrivacyPolicy", - "group": "policies", - "weight": 1149, + "method": "updateOAuth2Google", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-membership-privacy-policy.md", + "demo": "project\/update-o-auth-2-google.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49589,30 +49598,38 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "boolean", - "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", - "x-example": false - }, - "userEmail": { - "type": "boolean", - "description": "Set to true if you want make user email visible to all team members, or false to hide it.", - "x-example": false + "clientId": { + "type": "string", + "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "userPhone": { - "type": "boolean", - "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", - "x-example": false + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true }, - "userName": { - "type": "boolean", - "description": "Set to true if you want make user name visible to all team members, or false to hide it.", - "x-example": false + "prompt": { + "type": "array", + "description": "Array of Google OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. Must not be specified with other values. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "none", + "consent", + "select_account" + ], + "x-enum-name": "ProjectOAuth2GooglePrompt" + }, + "x-nullable": true }, - "userMFA": { + "enabled": { "type": "boolean", - "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } } } @@ -49621,21 +49638,21 @@ } } }, - "\/project\/policies\/password-dictionary": { + "\/project\/oauth2\/keycloak": { "patch": { - "summary": "Update password dictionary policy", - "operationId": "projectUpdatePasswordDictionaryPolicy", + "summary": "Update project OAuth2 Keycloak", + "operationId": "projectUpdateOAuth2Keycloak", "tags": [ "project" ], - "description": "Updating this policy allows you to control if new passwords are checked against most common passwords dictionary. When enabled, and user changes their password, password must not be contained in the dictionary.", + "description": "Update the project OAuth2 Keycloak configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Keycloak", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Keycloak" } } } @@ -49643,19 +49660,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordDictionaryPolicy", - "group": "policies", - "weight": 1150, + "method": "updateOAuth2Keycloak", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-password-dictionary-policy.md", + "demo": "project\/update-o-auth-2-keycloak.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49678,36 +49691,58 @@ "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of Keycloak instance. For example: keycloak.example.com", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "realmName": { + "type": "string", + "description": "Keycloak realm name. For example: appwrite-realm", + "x-example": "<REALM_NAME>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Toggle password dictionary policy. Set to true if you want password change to block passwords in the dictionary, or false to allow them. When changing this policy, existing passwords remain valid.", - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } } } } }, - "\/project\/policies\/password-history": { + "\/project\/oauth2\/kick": { "patch": { - "summary": "Update password history policy", - "operationId": "projectUpdatePasswordHistoryPolicy", + "summary": "Update project OAuth2 Kick", + "operationId": "projectUpdateOAuth2Kick", "tags": [ "project" ], - "description": "Updates one of password strength policies. Based on total length configured, previous password hashes are stored, and users cannot choose a new password that is already stored in the passwird history list, when updating an user password, or setting new one through password recovery.\n\nKeep in mind, while password history policy is disabled, the history is not being stored. Enabling the policy will not have any history on existing users, and it will only start to collect and enforce the policy on password changes since the policy is enabled.", + "description": "Update the project OAuth2 Kick configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Kick", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Kick" } } } @@ -49715,19 +49750,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordHistoryPolicy", - "group": "policies", - "weight": 1151, + "method": "updateOAuth2Kick", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-password-history-policy.md", + "demo": "project\/update-o-auth-2-kick.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49750,38 +49781,46 @@ "schema": { "type": "object", "properties": { - "total": { - "type": "integer", - "description": "Set the password history length per user. Value can be between 1 and 5000, or null to disable the limit.", - "x-example": 1, - "format": "int32", + "clientId": { + "type": "string", + "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true } - }, - "required": [ - "total" - ] + } } } } } } }, - "\/project\/policies\/password-personal-data": { + "\/project\/oauth2\/linkedin": { "patch": { - "summary": "Update password personal data policy", - "operationId": "projectUpdatePasswordPersonalDataPolicy", + "summary": "Update project OAuth2 Linkedin", + "operationId": "projectUpdateOAuth2Linkedin", "tags": [ "project" ], - "description": "Updating this policy allows you to control if password strength is checked against personal data. When enabled, and user sets or changes their password, the password must not contain user ID, name, email or phone number.", + "description": "Update the project OAuth2 Linkedin configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Linkedin", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Linkedin" } } } @@ -49789,19 +49828,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordPersonalDataPolicy", - "group": "policies", - "weight": 1152, + "method": "updateOAuth2Linkedin", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-password-personal-data-policy.md", + "demo": "project\/update-o-auth-2-linkedin.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49824,36 +49859,46 @@ "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "primaryClientSecret": { + "type": "string", + "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", + "x-example": "<PRIMARY_CLIENT_SECRET>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Toggle password personal data policy. Set to true if you want to block passwords including user's personal data, or false to allow it. When changing this policy, existing passwords remain valid.", - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } } } } }, - "\/project\/policies\/session-alert": { + "\/project\/oauth2\/microsoft": { "patch": { - "summary": "Update session alert policy", - "operationId": "projectUpdateSessionAlertPolicy", + "summary": "Update project OAuth2 Microsoft", + "operationId": "projectUpdateOAuth2Microsoft", "tags": [ "project" ], - "description": "Updating this policy allows you to control if email alert is sent upon session creation. When enabled, and user signs into their account, they will be sent an email notification. There is an exception, the first session after a new sign up does not trigger an alert, even if the policy is enabled.", + "description": "Update the project OAuth2 Microsoft configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Microsoft", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Microsoft" } } } @@ -49861,19 +49906,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSessionAlertPolicy", - "group": "policies", - "weight": 1153, + "method": "updateOAuth2Microsoft", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-session-alert-policy.md", + "demo": "project\/update-o-auth-2-microsoft.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49896,36 +49937,52 @@ "schema": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Toggle session alert policy. Set to true if you want users to receive email notifications when a sessions are created for their users, or false to not send email alerts.", - "x-example": false - } - }, - "required": [ - "enabled" - ] + "applicationId": { + "type": "string", + "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", + "x-example": "<APPLICATION_ID>", + "x-nullable": true + }, + "applicationSecret": { + "type": "string", + "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "x-example": "<APPLICATION_SECRET>", + "x-nullable": true + }, + "tenant": { + "type": "string", + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", + "x-example": "<TENANT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } } } } } } }, - "\/project\/policies\/session-duration": { + "\/project\/oauth2\/notion": { "patch": { - "summary": "Update session duration policy", - "operationId": "projectUpdateSessionDurationPolicy", + "summary": "Update project OAuth2 Notion", + "operationId": "projectUpdateOAuth2Notion", "tags": [ "project" ], - "description": "Update maximum duration how long sessions created within a project should stay active for.", + "description": "Update the project OAuth2 Notion configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Notion", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Notion" } } } @@ -49933,19 +49990,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSessionDurationPolicy", - "group": "policies", - "weight": 1154, + "method": "updateOAuth2Notion", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-session-duration-policy.md", + "demo": "project\/update-o-auth-2-notion.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49968,37 +50021,46 @@ "schema": { "type": "object", "properties": { - "duration": { - "type": "integer", - "description": "Maximum session length in seconds. Minium allowed value is 5 second, and maximum is 1 year, which is 31536000 seconds.", - "x-example": 5, - "format": "int32" + "oauthClientId": { + "type": "string", + "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", + "x-example": "<OAUTH_CLIENT_ID>", + "x-nullable": true + }, + "oauthClientSecret": { + "type": "string", + "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", + "x-example": "<OAUTH_CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "duration" - ] + } } } } } } }, - "\/project\/policies\/session-invalidation": { + "\/project\/oauth2\/oidc": { "patch": { - "summary": "Update session invalidation policy", - "operationId": "projectUpdateSessionInvalidationPolicy", + "summary": "Update project OAuth2 Oidc", + "operationId": "projectUpdateOAuth2Oidc", "tags": [ "project" ], - "description": "Updating this policy allows you to control if existing sessions should be invalidated when a password of a user is changed. When enabled, and user changes their password, they will be logged out of all their devices.", + "description": "Update the project OAuth2 Oidc configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Oidc", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Oidc" } } } @@ -50006,19 +50068,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSessionInvalidationPolicy", - "group": "policies", - "weight": 1155, + "method": "updateOAuth2Oidc", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-session-invalidation-policy.md", + "demo": "project\/update-o-auth-2-oidc.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50041,36 +50099,74 @@ "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "wellKnownURL": { + "type": "string", + "description": "OpenID Connect well-known configuration URL. When provided, authorization, token, and user info endpoints can be discovered automatically. For example: https:\/\/myoauth.com\/.well-known\/openid-configuration", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "authorizationURL": { + "type": "string", + "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "tokenURL": { + "type": "string", + "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "userInfoURL": { + "type": "string", + "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Toggle session invalidation policy. Set to true if you want password change to invalidate all sessions of an user, or false to keep sessions active.", - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } } } } }, - "\/project\/policies\/session-limit": { + "\/project\/oauth2\/okta": { "patch": { - "summary": "Update session limit policy", - "operationId": "projectUpdateSessionLimitPolicy", + "summary": "Update project OAuth2 Okta", + "operationId": "projectUpdateOAuth2Okta", "tags": [ "project" ], - "description": "Update the maximum number of sessions allowed per user. When the limit is hit, the oldest session will be deleted to make room for new one.", + "description": "Update the project OAuth2 Okta configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Okta", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Okta" } } } @@ -50078,19 +50174,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSessionLimitPolicy", - "group": "policies", - "weight": 1156, + "method": "updateOAuth2Okta", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-session-limit-policy.md", + "demo": "project\/update-o-auth-2-okta.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50113,38 +50205,58 @@ "schema": { "type": "object", "properties": { - "total": { - "type": "integer", - "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 5000, or null to disable the limit.", - "x-example": 1, - "format": "int32", + "clientId": { + "type": "string", + "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "domain": { + "type": "string", + "description": "Okta company domain. Required when enabling the provider. For example: trial-6400025.okta.com. Example of wrong value: trial-6400025-admin.okta.com, or https:\/\/trial-6400025.okta.com\/", + "x-example": null, + "x-nullable": true + }, + "authorizationServerId": { + "type": "string", + "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", + "x-example": "<AUTHORIZATION_SERVER_ID>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true } - }, - "required": [ - "total" - ] + } } } } } } }, - "\/project\/policies\/user-limit": { + "\/project\/oauth2\/paypal": { "patch": { - "summary": "Update user limit policy", - "operationId": "projectUpdateUserLimitPolicy", + "summary": "Update project OAuth2 Paypal", + "operationId": "projectUpdateOAuth2Paypal", "tags": [ "project" ], - "description": "Update the maximum number of users in the project. When the limit is hit or amount of existing users already exceeded the limit, all users remain active, but new user sign up will be prohibited.", + "description": "Update the project OAuth2 Paypal configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Paypal", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Paypal" } } } @@ -50152,19 +50264,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateUserLimitPolicy", - "group": "policies", - "weight": 1157, + "method": "updateOAuth2Paypal", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-user-limit-policy.md", + "demo": "project\/update-o-auth-2-paypal.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50187,80 +50295,46 @@ "schema": { "type": "object", "properties": { - "total": { - "type": "integer", - "description": "Set the maximum number of users allowed in the project. Value can be between 1 and 5000, or null to disable the limit.", - "x-example": 1, - "format": "int32", + "clientId": { + "type": "string", + "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "secretKey": { + "type": "string", + "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true } - }, - "required": [ - "total" - ] + } } } } } } }, - "\/project\/policies\/{policyId}": { - "get": { - "summary": "Get project policy", - "operationId": "projectGetPolicy", + "\/project\/oauth2\/paypalSandbox": { + "patch": { + "summary": "Update project OAuth2 PaypalSandbox", + "operationId": "projectUpdateOAuth2PaypalSandbox", "tags": [ "project" ], - "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", + "description": "Update the project OAuth2 PaypalSandbox configuration.", "responses": { "200": { - "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Personal Data, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy", + "description": "OAuth2Paypal", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/policyPasswordDictionary" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordHistory" - }, - { - "$ref": "#\/components\/schemas\/policyPasswordPersonalData" - }, - { - "$ref": "#\/components\/schemas\/policySessionAlert" - }, - { - "$ref": "#\/components\/schemas\/policySessionDuration" - }, - { - "$ref": "#\/components\/schemas\/policySessionInvalidation" - }, - { - "$ref": "#\/components\/schemas\/policySessionLimit" - }, - { - "$ref": "#\/components\/schemas\/policyUserLimit" - }, - { - "$ref": "#\/components\/schemas\/policyMembershipPrivacy" - } - ], - "discriminator": { - "propertyName": "$id", - "mapping": { - "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", - "password-history": "#\/components\/schemas\/policyPasswordHistory", - "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", - "session-alert": "#\/components\/schemas\/policySessionAlert", - "session-duration": "#\/components\/schemas\/policySessionDuration", - "session-invalidation": "#\/components\/schemas\/policySessionInvalidation", - "session-limit": "#\/components\/schemas\/policySessionLimit", - "user-limit": "#\/components\/schemas\/policyUserLimit", - "membership-privacy": "#\/components\/schemas\/policyMembershipPrivacy" - } - } + "$ref": "#\/components\/schemas\/oAuth2Paypal" } } } @@ -50268,19 +50342,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPolicy", - "group": "policies", - "weight": 1148, + "method": "updateOAuth2PaypalSandbox", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get-policy.md", + "demo": "project\/update-o-auth-2-paypal-sandbox.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "project.policies.read" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50297,48 +50367,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "policyId", - "description": "Policy ID. Can be one of: password-dictionary, password-history, password-personal-data, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy.", - "required": true, - "schema": { - "type": "string", - "x-example": "password-dictionary", - "enum": [ - "password-dictionary", - "password-history", - "password-personal-data", - "session-alert", - "session-duration", - "session-invalidation", - "session-limit", - "user-limit", - "membership-privacy" - ], - "x-enum-name": "ProjectPolicyId", - "x-enum-keys": [] - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "secretKey": { + "type": "string", + "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] + } } }, - "\/project\/protocols\/{protocolId}": { + "\/project\/oauth2\/podio": { "patch": { - "summary": "Update project protocol", - "operationId": "projectUpdateProtocol", + "summary": "Update project OAuth2 Podio", + "operationId": "projectUpdateOAuth2Podio", "tags": [ "project" ], - "description": "Update properties of a specific protocol. Use this endpoint to enable or disable a protocol in your project. ", + "description": "Update the project OAuth2 Podio configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Podio", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Podio" } } } @@ -50346,16 +50420,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateProtocol", - "group": null, - "weight": 1111, + "method": "updateOAuth2Podio", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-protocol.md", + "demo": "project\/update-o-auth-2-podio.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50372,61 +50445,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "protocolId", - "description": "Protocol name. Can be one of: rest, graphql, websocket", - "required": true, - "schema": { - "type": "string", - "x-example": "rest", - "enum": [ - "rest", - "graphql", - "websocket" - ], - "x-enum-name": "ProjectProtocolId", - "x-enum-keys": [] - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Protocol status.", - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } } } } }, - "\/project\/services\/{serviceId}": { + "\/project\/oauth2\/salesforce": { "patch": { - "summary": "Update project service", - "operationId": "projectUpdateService", + "summary": "Update project OAuth2 Salesforce", + "operationId": "projectUpdateOAuth2Salesforce", "tags": [ "project" ], - "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", + "description": "Update the project OAuth2 Salesforce configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Salesforce", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Salesforce" } } } @@ -50434,16 +50498,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateService", - "group": null, - "weight": 1112, + "method": "updateOAuth2Salesforce", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-service.md", + "demo": "project\/update-o-auth-2-salesforce.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50460,76 +50523,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "serviceId", - "description": "Service name. Can be one of: account, avatars, databases, tablesdb, locale, health, project, storage, teams, users, vcs, sites, functions, proxy, graphql, migrations, messaging, advisor", - "required": true, - "schema": { - "type": "string", - "x-example": "account", - "enum": [ - "account", - "avatars", - "databases", - "tablesdb", - "locale", - "health", - "project", - "storage", - "teams", - "users", - "vcs", - "sites", - "functions", - "proxy", - "graphql", - "migrations", - "messaging", - "advisor" - ], - "x-enum-name": "ProjectServiceId", - "x-enum-keys": [] - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { + "customerKey": { + "type": "string", + "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "x-example": "<CUSTOMER_KEY>", + "x-nullable": true + }, + "customerSecret": { + "type": "string", + "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", + "x-example": "<CUSTOMER_SECRET>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Service status.", - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } } } } }, - "\/project\/smtp": { + "\/project\/oauth2\/slack": { "patch": { - "summary": "Update project SMTP configuration", - "operationId": "projectUpdateSMTP", + "summary": "Update project OAuth2 Slack", + "operationId": "projectUpdateOAuth2Slack", "tags": [ "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.", + "description": "Update the project OAuth2 Slack configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Slack", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/oAuth2Slack" } } } @@ -50537,16 +50576,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSMTP", - "group": "smtp", - "weight": 1113, + "method": "updateOAuth2Slack", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-smtp.md", + "demo": "project\/update-o-auth-2-slack.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50569,72 +50607,21 @@ "schema": { "type": "object", "properties": { - "host": { - "type": "string", - "description": "SMTP server hostname (domain)", - "x-example": null, - "x-nullable": true - }, - "port": { - "type": "integer", - "description": "SMTP server port", - "x-example": null, - "format": "int32", - "x-nullable": true - }, - "username": { - "type": "string", - "description": "SMTP server username. Leave empty for no authorization.", - "x-example": "<USERNAME>", - "x-nullable": true - }, - "password": { - "type": "string", - "description": "SMTP server password. Leave empty for no authorization. This property is stored securely and cannot be read in future (write-only).", - "x-example": "<PASSWORD>", - "x-nullable": true - }, - "senderEmail": { - "type": "string", - "description": "Email address shown in inbox as the sender of the email.", - "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "senderName": { - "type": "string", - "description": "Name shown in inbox as the sender of the email.", - "x-example": "<SENDER_NAME>", - "x-nullable": true - }, - "replyToEmail": { - "type": "string", - "description": "Email used when user replies to the email.", - "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "replyToName": { + "clientId": { "type": "string", - "description": "Name used when user replies to the email.", - "x-example": "<REPLY_TO_NAME>", + "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "secure": { + "clientSecret": { "type": "string", - "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", - "x-example": "tls", - "enum": [ - "tls", - "ssl" - ], - "x-enum-name": "ProjectSMTPSecure", - "x-enum-keys": [], + "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", - "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", "x-example": false, "x-nullable": true } @@ -50645,31 +50632,37 @@ } } }, - "\/project\/smtp\/tests": { - "post": { - "summary": "Create project SMTP test", - "operationId": "projectCreateSMTPTest", + "\/project\/oauth2\/spotify": { + "patch": { + "summary": "Update project OAuth2 Spotify", + "operationId": "projectUpdateOAuth2Spotify", "tags": [ "project" ], - "description": "Send a test email to verify SMTP configuration. ", + "description": "Update the project OAuth2 Spotify configuration.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "OAuth2Spotify", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "createSMTPTest", - "group": "smtp", - "weight": 1114, + "method": "updateOAuth2Spotify", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-smtp-test.md", + "demo": "project\/update-o-auth-2-spotify.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50692,39 +50685,46 @@ "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" - } + "clientId": { + "type": "string", + "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "emails" - ] + } } } } } } }, - "\/project\/templates\/email": { - "get": { - "summary": "List project email templates", - "operationId": "projectListEmailTemplates", + "\/project\/oauth2\/stripe": { + "patch": { + "summary": "Update project OAuth2 Stripe", + "operationId": "projectUpdateOAuth2Stripe", "tags": [ "project" ], - "description": "Get a list of all custom email templates configured for the project. This endpoint returns an array of all configured email templates and their locales.", + "description": "Update the project OAuth2 Stripe configuration.", "responses": { "200": { - "description": "Email Templates List", + "description": "OAuth2Stripe", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/emailTemplateList" + "$ref": "#\/components\/schemas\/oAuth2Stripe" } } } @@ -50732,16 +50732,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listEmailTemplates", - "group": "templates", - "weight": 1115, + "method": "updateOAuth2Stripe", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/list-email-templates.md", + "demo": "project\/update-o-auth-2-stripe.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "templates.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50758,47 +50757,52 @@ "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). 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": { + "clientId": { + "type": "string", + "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "apiSecretKey": { + "type": "string", + "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", + "x-example": "<API_SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] - }, + } + } + }, + "\/project\/oauth2\/tradeshift": { "patch": { - "summary": "Update project email template", - "operationId": "projectUpdateEmailTemplate", + "summary": "Update project OAuth2 Tradeshift", + "operationId": "projectUpdateOAuth2Tradeshift", "tags": [ "project" ], - "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 project OAuth2 Tradeshift configuration.", "responses": { "200": { - "description": "EmailTemplate", + "description": "OAuth2Tradeshift", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/emailTemplate" + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" } } } @@ -50806,16 +50810,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmailTemplate", - "group": "templates", - "weight": 1117, + "method": "updateOAuth2Tradeshift", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-email-template.md", + "demo": "project\/update-o-auth-2-tradeshift.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "templates.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50838,225 +50841,46 @@ "schema": { "type": "object", "properties": { - "templateId": { - "type": "string", - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [] - }, - "locale": { - "type": "string", - "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", - "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": "ProjectEmailTemplateLocale", - "x-enum-keys": [] - }, - "subject": { - "type": "string", - "description": "Subject of the email template. Can be up to 255 characters.", - "x-example": "<SUBJECT>", - "x-nullable": true - }, - "message": { - "type": "string", - "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", - "x-example": "<MESSAGE>", - "x-nullable": true - }, - "senderName": { - "type": "string", - "description": "Name of the email sender.", - "x-example": "<SENDER_NAME>", - "x-nullable": true - }, - "senderEmail": { + "oauth2ClientId": { "type": "string", - "description": "Email of the sender.", - "x-example": "email@example.com", - "format": "email", + "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "x-example": "<OAUTH2_CLIENT_ID>", "x-nullable": true }, - "replyToEmail": { + "oauth2ClientSecret": { "type": "string", - "description": "Reply to email.", - "x-example": "email@example.com", - "format": "email", + "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "x-example": "<OAUTH2_CLIENT_SECRET>", "x-nullable": true }, - "replyToName": { - "type": "string", - "description": "Reply to name.", - "x-example": "<REPLY_TO_NAME>", + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true } - }, - "required": [ - "templateId" - ] + } } } } } } }, - "\/project\/templates\/email\/{templateId}": { - "get": { - "summary": "Get project email template", - "operationId": "projectGetEmailTemplate", + "\/project\/oauth2\/tradeshiftBox": { + "patch": { + "summary": "Update project OAuth2 Tradeshift Sandbox", + "operationId": "projectUpdateOAuth2TradeshiftSandbox", "tags": [ "project" ], - "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 project OAuth2 Tradeshift Sandbox configuration.", "responses": { "200": { - "description": "EmailTemplate", + "description": "OAuth2Tradeshift", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/emailTemplate" + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" } } } @@ -51064,16 +50888,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getEmailTemplate", - "group": "templates", - "weight": 1116, + "method": "updateOAuth2TradeshiftSandbox", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get-email-template.md", + "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "templates.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51090,192 +50913,52 @@ "Key": [] } ], - "parameters": [ - { - "name": "templateId", - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", - "required": true, - "schema": { - "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [] - }, - "in": "path" - }, - { - "name": "locale", - "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", - "required": false, - "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": "ProjectEmailTemplateLocale", - "x-enum-keys": [], - "default": "" - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "oauth2ClientId": { + "type": "string", + "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "x-example": "<OAUTH2_CLIENT_ID>", + "x-nullable": true + }, + "oauth2ClientSecret": { + "type": "string", + "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "x-example": "<OAUTH2_CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] + } } }, - "\/project\/usage": { - "get": { - "summary": "Get project usage stats", - "operationId": "projectGetUsage", + "\/project\/oauth2\/twitch": { + "patch": { + "summary": "Update project OAuth2 Twitch", + "operationId": "projectUpdateOAuth2Twitch", "tags": [ "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.", + "description": "Update the project OAuth2 Twitch configuration.", "responses": { "200": { - "description": "UsageProject", + "description": "OAuth2Twitch", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageProject" + "$ref": "#\/components\/schemas\/oAuth2Twitch" } } } @@ -51283,92 +50966,77 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 699, + "method": "updateOAuth2Twitch", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get-usage.md", + "demo": "project\/update-o-auth-2-twitch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "oauth2.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ - { - "name": "startDate", - "description": "Starting date for the usage", - "required": true, - "schema": { - "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "in": "query" - }, - { - "name": "endDate", - "description": "End date for the usage", - "required": true, - "schema": { - "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "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" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] + } } }, - "\/project\/variables": { - "get": { - "summary": "List project variables", - "operationId": "projectListVariables", + "\/project\/oauth2\/wordpress": { + "patch": { + "summary": "Update project OAuth2 WordPress", + "operationId": "projectUpdateOAuth2WordPress", "tags": [ "project" ], - "description": "Get a list of all project environment variables.", + "description": "Update the project OAuth2 WordPress configuration.", "responses": { "200": { - "description": "Variables List", + "description": "OAuth2WordPress", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variableList" + "$ref": "#\/components\/schemas\/oAuth2WordPress" } } } @@ -51376,16 +51044,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 1119, + "method": "updateOAuth2WordPress", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/list-variables.md", + "demo": "project\/update-o-auth-2-word-press.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51402,47 +51069,52 @@ "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: key, resourceType, resourceId, secret", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] - }, - "post": { - "summary": "Create project variable", - "operationId": "projectCreateVariable", + } + } + }, + "\/project\/oauth2\/x": { + "patch": { + "summary": "Update project OAuth2 X", + "operationId": "projectUpdateOAuth2X", "tags": [ "project" ], - "description": "Create a new project environment variable. These variables can be accessed by all functions and sites in the project.", + "description": "Update the project OAuth2 X configuration.", "responses": { - "201": { - "description": "Variable", + "200": { + "description": "OAuth2X", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/oAuth2X" } } } @@ -51450,16 +51122,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 1118, + "method": "updateOAuth2X", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-variable.md", + "demo": "project\/update-o-auth-2x.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51482,53 +51153,46 @@ "schema": { "type": "object", "properties": { - "variableId": { - "type": "string", - "description": "Variable 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": "<VARIABLE_ID>" - }, - "key": { + "customerKey": { "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" + "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", + "x-example": "<CUSTOMER_KEY>", + "x-nullable": true }, - "value": { + "secretKey": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>" + "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", + "x-example": "<SECRET_KEY>", + "x-nullable": true }, - "secret": { + "enabled": { "type": "boolean", - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "variableId", - "key", - "value" - ] + } } } } } } }, - "\/project\/variables\/{variableId}": { - "get": { - "summary": "Get project variable", - "operationId": "projectGetVariable", + "\/project\/oauth2\/yahoo": { + "patch": { + "summary": "Update project OAuth2 Yahoo", + "operationId": "projectUpdateOAuth2Yahoo", "tags": [ "project" ], - "description": "Get a variable by its unique ID. ", + "description": "Update the project OAuth2 Yahoo configuration.", "responses": { "200": { - "description": "Variable", + "description": "OAuth2Yahoo", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/oAuth2Yahoo" } } } @@ -51536,16 +51200,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 1120, + "method": "updateOAuth2Yahoo", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get-variable.md", + "demo": "project\/update-o-auth-2-yahoo.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51562,33 +51225,52 @@ "Key": [] } ], - "parameters": [ - { - "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": { + "clientId": { + "type": "string", + "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] - }, - "put": { - "summary": "Update project variable", - "operationId": "projectUpdateVariable", + } + } + }, + "\/project\/oauth2\/yandex": { + "patch": { + "summary": "Update project OAuth2 Yandex", + "operationId": "projectUpdateOAuth2Yandex", "tags": [ "project" ], - "description": "Update variable by its unique ID.", + "description": "Update the project OAuth2 Yandex configuration.", "responses": { "200": { - "description": "Variable", + "description": "OAuth2Yandex", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/oAuth2Yandex" } } } @@ -51596,16 +51278,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 1122, + "method": "updateOAuth2Yandex", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-variable.md", + "demo": "project\/update-o-auth-2-yandex.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51622,39 +51303,27 @@ "Key": [] } ], - "parameters": [ - { - "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": { + "clientId": { "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>", + "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "value": { + "clientSecret": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>", + "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, - "secret": { + "enabled": { "type": "boolean", - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", "x-example": false, "x-nullable": true } @@ -51663,31 +51332,39 @@ } } } - }, - "delete": { - "summary": "Delete project variable", - "operationId": "projectDeleteVariable", + } + }, + "\/project\/oauth2\/zoho": { + "patch": { + "summary": "Update project OAuth2 Zoho", + "operationId": "projectUpdateOAuth2Zoho", "tags": [ "project" ], - "description": "Delete a variable by its unique ID. ", + "description": "Update the project OAuth2 Zoho configuration.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "OAuth2Zoho", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 1121, + "method": "updateOAuth2Zoho", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/delete-variable.md", + "demo": "project\/update-o-auth-2-zoho.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51704,35 +51381,405 @@ "Key": [] } ], - "parameters": [ - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<VARIABLE_ID>" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/zoom": { + "patch": { + "summary": "Update project OAuth2 Zoom", + "operationId": "projectUpdateOAuth2Zoom", + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Zoom configuration.", + "responses": { + "200": { + "description": "OAuth2Zoom", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/oAuth2Zoom" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateOAuth2Zoom", + "group": "oauth2", + "cookies": false, + "type": "", + "demo": "project\/update-o-auth-2-zoom.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/project\/oauth2\/{providerId}": { + "get": { + "summary": "Get project OAuth2 provider", + "operationId": "projectGetOAuth2Provider", + "tags": [ + "project" + ], + "description": "Get a single OAuth2 provider configuration. Credential fields (client secret, p8 file, key\/team IDs) are write-only and always returned empty.", + "responses": { + "200": { + "description": "OAuth2GitHub, or OAuth2Discord, or OAuth2Figma, or OAuth2Dropbox, or OAuth2Dailymotion, or OAuth2Bitbucket, or OAuth2Bitly, or OAuth2Box, or OAuth2Autodesk, or OAuth2Google, or OAuth2Zoom, or OAuth2Zoho, or OAuth2Yandex, or OAuth2X, or OAuth2WordPress, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2Linkedin, or OAuth2Disqus, or OAuth2Amazon, or OAuth2Etsy, or OAuth2Facebook, or OAuth2Tradeshift, or OAuth2Paypal, or OAuth2Gitlab, or OAuth2Authentik, or OAuth2Auth0, or OAuth2FusionAuth, or OAuth2Keycloak, or OAuth2Oidc, or OAuth2Apple, or OAuth2Okta, or OAuth2Kick, or OAuth2Microsoft", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/oAuth2Github" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Discord" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Figma" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dropbox" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Dailymotion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitbucket" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Bitly" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Box" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Autodesk" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Google" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoom" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Zoho" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yandex" + }, + { + "$ref": "#\/components\/schemas\/oAuth2X" + }, + { + "$ref": "#\/components\/schemas\/oAuth2WordPress" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Twitch" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Stripe" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Spotify" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Slack" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Podio" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Notion" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Salesforce" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Yahoo" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Linkedin" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Disqus" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Amazon" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Etsy" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Facebook" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Tradeshift" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Paypal" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Gitlab" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Authentik" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Auth0" + }, + { + "$ref": "#\/components\/schemas\/oAuth2FusionAuth" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Keycloak" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Oidc" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Apple" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Okta" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Kick" + }, + { + "$ref": "#\/components\/schemas\/oAuth2Microsoft" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "github": "#\/components\/schemas\/oAuth2Github", + "discord": "#\/components\/schemas\/oAuth2Discord", + "figma": "#\/components\/schemas\/oAuth2Figma", + "dropbox": "#\/components\/schemas\/oAuth2Dropbox", + "dailymotion": "#\/components\/schemas\/oAuth2Dailymotion", + "bitbucket": "#\/components\/schemas\/oAuth2Bitbucket", + "bitly": "#\/components\/schemas\/oAuth2Bitly", + "box": "#\/components\/schemas\/oAuth2Box", + "autodesk": "#\/components\/schemas\/oAuth2Autodesk", + "google": "#\/components\/schemas\/oAuth2Google", + "zoom": "#\/components\/schemas\/oAuth2Zoom", + "zoho": "#\/components\/schemas\/oAuth2Zoho", + "yandex": "#\/components\/schemas\/oAuth2Yandex", + "x": "#\/components\/schemas\/oAuth2X", + "wordpress": "#\/components\/schemas\/oAuth2WordPress", + "twitch": "#\/components\/schemas\/oAuth2Twitch", + "stripe": "#\/components\/schemas\/oAuth2Stripe", + "spotify": "#\/components\/schemas\/oAuth2Spotify", + "slack": "#\/components\/schemas\/oAuth2Slack", + "podio": "#\/components\/schemas\/oAuth2Podio", + "notion": "#\/components\/schemas\/oAuth2Notion", + "salesforce": "#\/components\/schemas\/oAuth2Salesforce", + "yahoo": "#\/components\/schemas\/oAuth2Yahoo", + "linkedin": "#\/components\/schemas\/oAuth2Linkedin", + "disqus": "#\/components\/schemas\/oAuth2Disqus", + "amazon": "#\/components\/schemas\/oAuth2Amazon", + "etsy": "#\/components\/schemas\/oAuth2Etsy", + "facebook": "#\/components\/schemas\/oAuth2Facebook", + "tradeshift": "#\/components\/schemas\/oAuth2Tradeshift", + "tradeshiftBox": "#\/components\/schemas\/oAuth2Tradeshift", + "paypal": "#\/components\/schemas\/oAuth2Paypal", + "paypalSandbox": "#\/components\/schemas\/oAuth2Paypal", + "gitlab": "#\/components\/schemas\/oAuth2Gitlab", + "authentik": "#\/components\/schemas\/oAuth2Authentik", + "auth0": "#\/components\/schemas\/oAuth2Auth0", + "fusionauth": "#\/components\/schemas\/oAuth2FusionAuth", + "keycloak": "#\/components\/schemas\/oAuth2Keycloak", + "oidc": "#\/components\/schemas\/oAuth2Oidc", + "apple": "#\/components\/schemas\/oAuth2Apple", + "okta": "#\/components\/schemas\/oAuth2Okta", + "kick": "#\/components\/schemas\/oAuth2Kick", + "microsoft": "#\/components\/schemas\/oAuth2Microsoft" + } + } + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getOAuth2Provider", + "group": "oauth2", + "cookies": false, + "type": "", + "demo": "project\/get-o-auth-2-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "OAuth2 provider key. For example: github, google, apple.", + "required": true, + "schema": { + "type": "string", + "x-example": "amazon", + "enum": [ + "amazon", + "apple", + "auth0", + "authentik", + "autodesk", + "bitbucket", + "bitly", + "box", + "dailymotion", + "discord", + "disqus", + "dropbox", + "etsy", + "facebook", + "figma", + "fusionauth", + "github", + "gitlab", + "google", + "keycloak", + "kick", + "linkedin", + "microsoft", + "notion", + "oidc", + "okta", + "paypal", + "paypalSandbox", + "podio", + "salesforce", + "slack", + "spotify", + "stripe", + "tradeshift", + "tradeshiftBox", + "twitch", + "wordpress", + "x", + "yahoo", + "yammer", + "yandex", + "zoho", + "zoom" + ], + "x-enum-name": "ProjectOAuthProviderId" }, "in": "path" } ] } }, - "\/projects": { + "\/project\/platforms": { "get": { - "summary": "List projects", - "operationId": "projectsList", + "summary": "List project platforms", + "operationId": "projectListPlatforms", "tags": [ - "projects" + "project" ], - "description": "Get a list of all projects. You can use the query params to filter your results. ", + "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", "responses": { "200": { - "description": "Projects List", + "description": "Platforms List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/projectList" + "$ref": "#\/components\/schemas\/platformList" } } } @@ -51740,18 +51787,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "projects", - "weight": 1106, + "method": "listPlatforms", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/list.md", + "demo": "project\/list-platforms.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "platforms.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -51761,13 +51808,14 @@ }, "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, 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\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: type, name, hostname, bundleIdentifier, applicationId, packageIdentifierName, packageName", "required": false, "schema": { "type": "array", @@ -51778,17 +51826,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.", @@ -51801,21 +51838,23 @@ "in": "query" } ] - }, + } + }, + "\/project\/platforms\/android": { "post": { - "summary": "Create project", - "operationId": "projectsCreate", + "summary": "Create project Android platform", + "operationId": "projectCreateAndroidPlatform", "tags": [ - "projects" + "project" ], - "description": "Create a new project. You can create a maximum of 100 projects per account. ", + "description": "Create a new Android platform for your project. Use this endpoint to register a new Android platform where your users will run your application which will interact with the Appwrite API.", "responses": { "201": { - "description": "Project", + "description": "Platform Android", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/platformAndroid" } } } @@ -51823,29 +51862,29 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "projects", - "weight": 1104, + "method": "createAndroidPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/create.md", + "demo": "project\/create-android-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "requestBody": { @@ -51854,41 +51893,26 @@ "schema": { "type": "object", "properties": { - "projectId": { + "platformId": { "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 + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" }, "name": { "type": "string", - "description": "Project name. Max length: 128 chars.", + "description": "Platform name. Max length: 128 chars.", "x-example": "<NAME>" }, - "teamId": { - "type": "string", - "description": "Team unique ID.", - "x-example": "<TEAM_ID>" - }, - "region": { + "applicationId": { "type": "string", - "description": "Project Region.", - "x-example": "fra", - "enum": [ - "fra", - "nyc", - "syd", - "sfo", - "sgp", - "tor" - ], - "x-enum-name": null, - "x-enum-keys": [] + "description": "Android application ID. Max length: 256 chars.", + "x-example": "<APPLICATION_ID>" } }, "required": [ - "projectId", + "platformId", "name", - "teamId" + "applicationId" ] } } @@ -51896,21 +51920,21 @@ } } }, - "\/projects\/{projectId}": { - "patch": { - "summary": "Update project", - "operationId": "projectsUpdate", + "\/project\/platforms\/android\/{platformId}": { + "put": { + "summary": "Update project Android platform", + "operationId": "projectUpdateAndroidPlatform", "tags": [ - "projects" + "project" ], - "description": "Update a project by its unique ID.", + "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", "responses": { "200": { - "description": "Project", + "description": "Platform Android", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/platformAndroid" } } } @@ -51918,39 +51942,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "projects", - "weight": 1105, + "method": "updateAndroidPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/update.md", + "demo": "project\/update-android-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<PLATFORM_ID>" }, "in": "path" } @@ -51963,58 +51987,18 @@ "properties": { "name": { "type": "string", - "description": "Project name. Max length: 128 chars.", + "description": "Platform 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": { + "applicationId": { "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": { - "type": "string", - "description": "Project legal tax ID. Max length: 256 chars.", - "x-example": "<LEGAL_TAX_ID>" + "description": "Android application ID. Max length: 256 chars.", + "x-example": "<APPLICATION_ID>" } }, "required": [ - "name" + "name", + "applicationId" ] } } @@ -52022,75 +52006,101 @@ } } }, - "\/projects\/{projectId}\/console-access": { - "patch": { - "summary": "Record console access to a project", - "operationId": "projectsUpdateConsoleAccess", + "\/project\/platforms\/apple": { + "post": { + "summary": "Create project Apple platform", + "operationId": "projectCreateApplePlatform", "tags": [ - "projects" + "project" ], - "description": "Record console access to a project. This endpoint updates the last accessed timestamp for the project to track console activity.\n", + "description": "Create a new Apple platform for your project. Use this endpoint to register a new Apple platform where your users will run your application which will interact with the Appwrite API.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Platform Apple", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformApple" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "updateConsoleAccess", - "group": null, - "weight": 1101, + "method": "createApplePlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/update-console-access.md", + "demo": "project\/create-apple-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-console-access.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "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": { + "platformId": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + }, + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier. Max length: 256 chars.", + "x-example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "platformId", + "name", + "bundleIdentifier" + ] + } + } } - ] + } } }, - "\/projects\/{projectId}\/dev-keys": { - "get": { - "summary": "List dev keys", - "operationId": "projectsListDevKeys", + "\/project\/platforms\/apple\/{platformId}": { + "put": { + "summary": "Update project Apple platform", + "operationId": "projectUpdateApplePlatform", "tags": [ - "projects" + "project" ], - "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": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", "responses": { "200": { - "description": "Dev Keys List", + "description": "Platform Apple", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKeyList" + "$ref": "#\/components\/schemas\/platformApple" } } } @@ -52098,18 +52108,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listDevKeys", - "group": "devKeys", - "weight": 407, + "method": "updateApplePlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/list-dev-keys.md", + "demo": "project\/update-apple-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52119,49 +52129,64 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<PLATFORM_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" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier. Max length: 256 chars.", + "x-example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "name", + "bundleIdentifier" + ] + } + } + } + } + } + }, + "\/project\/platforms\/linux": { "post": { - "summary": "Create dev key", - "operationId": "projectsCreateDevKey", + "summary": "Create project Linux platform", + "operationId": "projectCreateLinuxPlatform", "tags": [ - "projects" + "project" ], - "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 Linux platform for your project. Use this endpoint to register a new Linux platform where your users will run your application which will interact with the Appwrite API.", "responses": { "201": { - "description": "DevKey", + "description": "Platform Linux", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKey" + "$ref": "#\/components\/schemas\/platformLinux" } } } @@ -52169,18 +52194,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDevKey", - "group": "devKeys", - "weight": 404, + "method": "createLinuxPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/create-dev-key.md", + "demo": "project\/create-linux-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52190,19 +52215,8 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -52211,21 +52225,26 @@ "schema": { "type": "object", "properties": { + "platformId": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + }, "name": { "type": "string", - "description": "Key name. Max length: 128 chars.", + "description": "Platform name. Max length: 128 chars.", "x-example": "<NAME>" }, - "expire": { + "packageName": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" + "description": "Linux package name. Max length: 256 chars.", + "x-example": "<PACKAGE_NAME>" } }, "required": [ + "platformId", "name", - "expire" + "packageName" ] } } @@ -52233,21 +52252,21 @@ } } }, - "\/projects\/{projectId}\/dev-keys\/{keyId}": { - "get": { - "summary": "Get dev key", - "operationId": "projectsGetDevKey", + "\/project\/platforms\/linux\/{platformId}": { + "put": { + "summary": "Update project Linux platform", + "operationId": "projectUpdateLinuxPlatform", "tags": [ - "projects" + "project" ], - "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": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", "responses": { "200": { - "description": "DevKey", + "description": "Platform Linux", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKey" + "$ref": "#\/components\/schemas\/platformLinux" } } } @@ -52255,18 +52274,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDevKey", - "group": "devKeys", - "weight": 406, + "method": "updateLinuxPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/get-dev-key.md", + "demo": "project\/update-linux-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52276,46 +52295,64 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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": "platformId", + "description": "Platform ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<PLATFORM_ID>" }, "in": "path" } - ] - }, - "put": { - "summary": "Update dev key", - "operationId": "projectsUpdateDevKey", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "packageName": { + "type": "string", + "description": "Linux package name. Max length: 256 chars.", + "x-example": "<PACKAGE_NAME>" + } + }, + "required": [ + "name", + "packageName" + ] + } + } + } + } + } + }, + "\/project\/platforms\/web": { + "post": { + "summary": "Create project web platform", + "operationId": "projectCreateWebPlatform", "tags": [ - "projects" + "project" ], - "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": "Create a new web 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": { - "200": { - "description": "DevKey", + "201": { + "description": "Platform Web", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKey" + "$ref": "#\/components\/schemas\/platformWeb" } } } @@ -52323,18 +52360,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDevKey", - "group": "devKeys", - "weight": 405, + "method": "createWebPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/update-dev-key.md", + "demo": "project\/create-web-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52344,29 +52381,8 @@ }, "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" + "Project": [], + "Key": [] } ], "requestBody": { @@ -52375,53 +52391,67 @@ "schema": { "type": "object", "properties": { + "platformId": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + }, "name": { "type": "string", - "description": "Key name. Max length: 128 chars.", + "description": "Platform name. Max length: 128 chars.", "x-example": "<NAME>" }, - "expire": { + "hostname": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" + "description": "Platform web hostname. Max length: 256 chars.", + "x-example": "app.example.com" } }, "required": [ + "platformId", "name", - "expire" + "hostname" ] } } } } - }, - "delete": { - "summary": "Delete dev key", - "operationId": "projectsDeleteDevKey", + } + }, + "\/project\/platforms\/web\/{platformId}": { + "put": { + "summary": "Update project web platform", + "operationId": "projectUpdateWebPlatform", "tags": [ - "projects" + "project" ], - "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": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Platform Web", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformWeb" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDevKey", - "group": "devKeys", - "weight": 408, + "method": "updateWebPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/delete-dev-key.md", + "demo": "project\/update-web-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52431,48 +52461,64 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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": "platformId", + "description": "Platform ID.", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "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>" + }, + "hostname": { + "type": "string", + "description": "Platform web hostname. Max length: 256 chars.", + "x-example": "app.example.com" + } + }, + "required": [ + "name", + "hostname" + ] + } + } + } + } } }, - "\/projects\/{projectId}\/schedules": { - "get": { - "summary": "List schedules", - "operationId": "projectsListSchedules", + "\/project\/platforms\/windows": { + "post": { + "summary": "Create project Windows platform", + "operationId": "projectCreateWindowsPlatform", "tags": [ - "projects" + "project" ], - "description": "Get a list of all the project's schedules. You can use the query params to filter your results.", + "description": "Create a new Windows platform for your project. Use this endpoint to register a new Windows platform where your users will run your application which will interact with the Appwrite API.", "responses": { - "200": { - "description": "Schedules List", + "201": { + "description": "Platform Windows", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/scheduleList" + "$ref": "#\/components\/schemas\/platformWindows" } } } @@ -52480,82 +52526,79 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSchedules", - "group": "schedules", - "weight": 415, + "method": "createWindowsPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/list-schedules.md", + "demo": "project\/create-windows-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-schedules.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": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "platformId": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + }, + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "packageIdentifierName": { + "type": "string", + "description": "Windows package identifier name. Max length: 256 chars.", + "x-example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageIdentifierName" + ] + } + } } - ] - }, - "post": { - "summary": "Create schedule", - "operationId": "projectsCreateSchedule", + } + } + }, + "\/project\/platforms\/windows\/{platformId}": { + "put": { + "summary": "Update project Windows platform", + "operationId": "projectUpdateWindowsPlatform", "tags": [ - "projects" + "project" ], - "description": "Create a new schedule for a resource.", + "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", "responses": { - "201": { - "description": "Schedule", + "200": { + "description": "Platform Windows", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/schedule" + "$ref": "#\/components\/schemas\/platformWindows" } } } @@ -52563,39 +52606,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSchedule", - "group": "schedules", - "weight": 1107, + "method": "updateWindowsPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/create-schedule.md", + "demo": "project\/update-windows-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-schedule.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<PLATFORM_ID>" }, "in": "path" } @@ -52606,44 +52649,20 @@ "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": { + "name": { "type": "string", - "description": "The resource ID to associate with this schedule.", - "x-example": "<RESOURCE_ID>" + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "schedule": { + "packageIdentifierName": { "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": "{}" + "description": "Windows package identifier name. Max length: 256 chars.", + "x-example": "<PACKAGE_IDENTIFIER_NAME>" } }, "required": [ - "resourceType", - "resourceId", - "schedule" + "name", + "packageIdentifierName" ] } } @@ -52651,21 +52670,47 @@ } } }, - "\/projects\/{projectId}\/schedules\/{scheduleId}": { + "\/project\/platforms\/{platformId}": { "get": { - "summary": "Get schedule", - "operationId": "projectsGetSchedule", + "summary": "Get project platform", + "operationId": "projectGetPlatform", "tags": [ - "projects" + "project" ], - "description": "Get a schedule by its unique ID.", + "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": "Schedule", + "description": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/schedule" + "oneOf": [ + { + "$ref": "#\/components\/schemas\/platformWeb" + }, + { + "$ref": "#\/components\/schemas\/platformApple" + }, + { + "$ref": "#\/components\/schemas\/platformAndroid" + }, + { + "$ref": "#\/components\/schemas\/platformWindows" + }, + { + "$ref": "#\/components\/schemas\/platformLinux" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "web": "#\/components\/schemas\/platformWeb", + "apple": "#\/components\/schemas\/platformApple", + "android": "#\/components\/schemas\/platformAndroid", + "windows": "#\/components\/schemas\/platformWindows", + "linux": "#\/components\/schemas\/platformLinux" + } + } } } } @@ -52673,63 +52718,51 @@ }, "deprecated": false, "x-appwrite": { - "method": "getSchedule", - "group": "schedules", - "weight": 414, + "method": "getPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/get-schedule.md", + "demo": "project\/get-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", + "scope": "platforms.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-schedule.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": "scheduleId", - "description": "Schedule ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "schema": { "type": "string", - "x-example": "<SCHEDULE_ID>" + "x-example": "<PLATFORM_ID>" }, "in": "path" } ] - } - }, - "\/projects\/{projectId}\/status": { - "patch": { - "summary": "Update the status of a project", - "operationId": "projectsUpdateStatus", + }, + "delete": { + "summary": "Delete project platform", + "operationId": "projectDeletePlatform", "tags": [ - "projects" + "project" ], - "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", + "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" @@ -52737,164 +52770,60 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateStatus", - "group": null, - "weight": 1102, - "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": 1103, + "method": "deletePlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/update-team.md", + "demo": "project\/delete-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-team.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<PLATFORM_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" - ] - } - } - } - } + ] } }, - "\/proxy\/rules": { + "\/project\/policies": { "get": { - "summary": "List rules", - "operationId": "proxyListRules", + "summary": "List project policies", + "operationId": "projectListPolicies", "tags": [ - "proxy" + "project" ], - "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 project policies and their current configuration.", "responses": { "200": { - "description": "Rule List", + "description": "Policies List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRuleList" + "$ref": "#\/components\/schemas\/policyList" } } } @@ -52902,16 +52831,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRules", - "group": "rules", - "weight": 1215, + "method": "listPolicies", + "group": "policies", "cookies": false, "type": "", - "demo": "proxy\/list-rules.md", + "demo": "project\/list-policies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", + "scope": [ + "policies.read", + "project.policies.read" + ], "platforms": [ "console", "server" @@ -52931,7 +52862,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\/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). Only supported methods are limit and offset", "required": false, "schema": { "type": "array", @@ -52956,21 +52887,21 @@ ] } }, - "\/proxy\/rules\/api": { - "post": { - "summary": "Create API rule", - "operationId": "proxyCreateAPIRule", + "\/project\/policies\/deny-aliased-email": { + "patch": { + "summary": "Update deny aliased email policy", + "operationId": "projectUpdateDenyAliasedEmailPolicy", "tags": [ - "proxy" + "project" ], - "description": "Create a new proxy rule for serving Appwrite's API on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "description": "Configures if aliased emails such as subaddresses and emails with suffixes are denied during new users sign-ups and email updates.", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/project" } } } @@ -52978,16 +52909,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createAPIRule", - "group": "rules", - "weight": 1210, + "method": "updateDenyAliasedEmailPolicy", + "group": "policies", "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": "project\/update-deny-aliased-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53010,14 +52943,14 @@ "schema": { "type": "object", "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "x-example": null + "enabled": { + "type": "boolean", + "description": "Set whether or not to block aliased emails during signup and email updates.", + "x-example": false } }, "required": [ - "domain" + "enabled" ] } } @@ -53025,21 +52958,21 @@ } } }, - "\/proxy\/rules\/function": { - "post": { - "summary": "Create function rule", - "operationId": "proxyCreateFunctionRule", + "\/project\/policies\/deny-disposable-email": { + "patch": { + "summary": "Update deny disposable email policy", + "operationId": "projectUpdateDenyDisposableEmailPolicy", "tags": [ - "proxy" + "project" ], - "description": "Create a new proxy rule for executing Appwrite Function on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/project" } } } @@ -53047,16 +52980,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFunctionRule", - "group": "rules", - "weight": 1212, + "method": "updateDenyDisposableEmailPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "proxy\/create-function-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", + "demo": "project\/update-deny-disposable-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53079,25 +53014,14 @@ "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>" + "enabled": { + "type": "boolean", + "description": "Set whether or not to block disposable email addresses during signup and email updates.", + "x-example": false } }, "required": [ - "domain", - "functionId" + "enabled" ] } } @@ -53105,21 +53029,21 @@ } } }, - "\/proxy\/rules\/redirect": { - "post": { - "summary": "Create Redirect rule", - "operationId": "proxyCreateRedirectRule", + "\/project\/policies\/deny-free-email": { + "patch": { + "summary": "Update deny free email policy", + "operationId": "projectUpdateDenyFreeEmailPolicy", "tags": [ - "proxy" + "project" ], - "description": "Create a new proxy rule for to redirect from custom domain to another domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "description": "Configures if emails from free providers such as Gmail or Yahoo are denied during new users sign-ups and email updates.", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/project" } } } @@ -53127,16 +53051,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRedirectRule", - "group": "rules", - "weight": 1213, + "method": "updateDenyFreeEmailPolicy", + "group": "policies", "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": "project\/update-deny-free-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53159,61 +53085,14 @@ "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" - ] + "enabled": { + "type": "boolean", + "description": "Set whether or not to block free email addresses during signup and email updates.", + "x-example": false } }, "required": [ - "domain", - "url", - "statusCode", - "resourceId", - "resourceType" + "enabled" ] } } @@ -53221,21 +53100,21 @@ } } }, - "\/proxy\/rules\/site": { - "post": { - "summary": "Create site rule", - "operationId": "proxyCreateSiteRule", + "\/project\/policies\/membership-privacy": { + "patch": { + "summary": "Update membership privacy policy", + "operationId": "projectUpdateMembershipPrivacyPolicy", "tags": [ - "proxy" + "project" ], - "description": "Create a new proxy rule for serving Appwrite Site on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "description": "Updating this policy allows you to control if team members can see other members information. When enabled, all team members can see ID, name, email, phone number, and MFA status of other members..", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/project" } } } @@ -53243,16 +53122,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSiteRule", - "group": "rules", - "weight": 1211, + "method": "updateMembershipPrivacyPolicy", + "group": "policies", "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": "project\/update-membership-privacy-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53275,47 +53156,53 @@ "schema": { "type": "object", "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "x-example": null + "userId": { + "type": "boolean", + "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", + "x-example": false }, - "siteId": { - "type": "string", - "description": "ID of site to be executed.", - "x-example": "<SITE_ID>" + "userEmail": { + "type": "boolean", + "description": "Set to true if you want make user email visible to all team members, or false to hide it.", + "x-example": false }, - "branch": { - "type": "string", - "description": "Name of VCS branch to deploy changes automatically", - "x-example": "<BRANCH>" + "userPhone": { + "type": "boolean", + "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", + "x-example": false + }, + "userName": { + "type": "boolean", + "description": "Set to true if you want make user name visible to all team members, or false to hide it.", + "x-example": false + }, + "userMFA": { + "type": "boolean", + "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", + "x-example": false } - }, - "required": [ - "domain", - "siteId" - ] + } } } } } } }, - "\/proxy\/rules\/{ruleId}": { - "get": { - "summary": "Get rule", - "operationId": "proxyGetRule", + "\/project\/policies\/password-dictionary": { + "patch": { + "summary": "Update password dictionary policy", + "operationId": "projectUpdatePasswordDictionaryPolicy", "tags": [ - "proxy" + "project" ], - "description": "Get a proxy rule by its unique ID.", + "description": "Updating this policy allows you to control if new passwords are checked against most common passwords dictionary. When enabled, and user changes their password, password must not be contained in the dictionary.", "responses": { "200": { - "description": "Rule", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/project" } } } @@ -53323,16 +53210,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRule", - "group": "rules", - "weight": 1214, + "method": "updatePasswordDictionaryPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "proxy\/get-rule.md", + "demo": "project\/update-password-dictionary-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53349,43 +53238,61 @@ "Key": [] } ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<RULE_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Toggle password dictionary policy. Set to true if you want password change to block passwords in the dictionary, or false to allow them. When changing this policy, existing passwords remain valid.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } } - ] - }, - "delete": { - "summary": "Delete rule", - "operationId": "proxyDeleteRule", + } + } + }, + "\/project\/policies\/password-history": { + "patch": { + "summary": "Update password history policy", + "operationId": "projectUpdatePasswordHistoryPolicy", "tags": [ - "proxy" + "project" ], - "description": "Delete a proxy rule by its unique ID.", + "description": "Updates one of password strength policies. Based on total length configured, previous password hashes are stored, and users cannot choose a new password that is already stored in the passwird history list, when updating an user password, or setting new one through password recovery.\n\nKeep in mind, while password history policy is disabled, the history is not being stored. Enabling the policy will not have any history on existing users, and it will only start to collect and enforce the policy on password changes since the policy is enabled.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteRule", - "group": "rules", - "weight": 1216, + "method": "updatePasswordHistoryPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "proxy\/delete-rule.md", + "demo": "project\/update-password-history-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.write", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53402,35 +53309,44 @@ "Key": [] } ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<RULE_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Set the password history length per user. Value can be between 1 and 5000, or null to disable the limit.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "total" + ] + } + } } - ] + } } }, - "\/proxy\/rules\/{ruleId}\/status": { + "\/project\/policies\/password-personal-data": { "patch": { - "summary": "Update rule status", - "operationId": "proxyUpdateRuleStatus", + "summary": "Update password personal data policy", + "operationId": "projectUpdatePasswordPersonalDataPolicy", "tags": [ - "proxy" + "project" ], - "description": "If not succeeded yet, retry verification process of a proxy rule domain. This endpoint triggers domain verification by checking DNS records. If verification is successful, a TLS certificate will be automatically provisioned for the domain asynchronously in the background.", + "description": "Updating this policy allows you to control if password strength is checked against personal data. When enabled, and user sets or changes their password, the password must not contain user ID, name, email or phone number.", "responses": { "200": { - "description": "Rule", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/project" } } } @@ -53438,16 +53354,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRuleStatus", - "group": "rules", - "weight": 1217, + "method": "updatePasswordPersonalDataPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "proxy\/update-rule-status.md", + "demo": "project\/update-password-personal-data-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.write", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53464,35 +53382,42 @@ "Key": [] } ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<RULE_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Toggle password personal data policy. Set to true if you want to block passwords including user's personal data, or false to allow it. When changing this policy, existing passwords remain valid.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } } - ] + } } }, - "\/reports": { - "get": { - "summary": "List reports", - "operationId": "advisorListReports", + "\/project\/policies\/session-alert": { + "patch": { + "summary": "Update session alert policy", + "operationId": "projectUpdateSessionAlertPolicy", "tags": [ - "advisor" + "project" ], - "description": "Get a list of all the project's analyzer reports. You can use the query params to filter your results.\n", + "description": "Updating this policy allows you to control if email alert is sent upon session creation. When enabled, and user signs into their account, they will be sent an email notification. There is an exception, the first session after a new sign up does not trigger an alert, even if the policy is enabled.", "responses": { "200": { - "description": "Reports List", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/reportList" + "$ref": "#\/components\/schemas\/project" } } } @@ -53500,25 +53425,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "listReports", - "group": "reports", - "weight": 695, + "method": "updateSessionAlertPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "advisor\/list-reports.md", + "demo": "project\/update-session-alert-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-reports.md", "auth": { "Project": [] } @@ -53526,54 +53450,45 @@ "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: appId, type, targetType, target, analyzedAt", - "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": { + "enabled": { + "type": "boolean", + "description": "Toggle session alert policy. Set to true if you want users to receive email notifications when a sessions are created for their users, or false to not send email alerts.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } } - ] + } } }, - "\/reports\/{reportId}": { - "get": { - "summary": "Get report", - "operationId": "advisorGetReport", + "\/project\/policies\/session-duration": { + "patch": { + "summary": "Update session duration policy", + "operationId": "projectUpdateSessionDurationPolicy", "tags": [ - "advisor" + "project" ], - "description": "Get an analyzer report by its unique ID. The response includes the report's metadata and the nested insights it produced.\n", + "description": "Update maximum duration how long sessions created within a project should stay active for.", "responses": { "200": { - "description": "Report", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/report" + "$ref": "#\/components\/schemas\/project" } } } @@ -53581,81 +53496,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "getReport", - "group": "reports", - "weight": 694, + "method": "updateSessionDurationPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "advisor\/get-report.md", + "demo": "project\/update-session-duration-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", - "platforms": [ - "console", - "client", - "server", - "server" + "scope": [ + "policies.write", + "project.policies.write" ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-report.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Report ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<REPORT_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete report", - "operationId": "advisorDeleteReport", - "tags": [ - "advisor" - ], - "description": "Delete an analyzer report by its unique ID. Nested insights and CTA metadata are removed asynchronously by the deletes worker.\n", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteReport", - "group": "reports", - "weight": 696, - "cookies": false, - "type": "", - "demo": "advisor\/delete-report.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "projectId:{projectId},userId:{userId}", - "scope": "reports.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/delete-report.md", "auth": { "Project": [] } @@ -53666,35 +53524,43 @@ "Key": [] } ], - "parameters": [ - { - "name": "reportId", - "description": "Report ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<REPORT_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "duration": { + "type": "integer", + "description": "Maximum session length in seconds. Minium allowed value is 5 second, and maximum is 1 year, which is 31536000 seconds.", + "x-example": 5, + "format": "int32" + } + }, + "required": [ + "duration" + ] + } + } } - ] + } } }, - "\/reports\/{reportId}\/insights": { - "get": { - "summary": "List insights", - "operationId": "advisorListInsights", + "\/project\/policies\/session-invalidation": { + "patch": { + "summary": "Update session invalidation policy", + "operationId": "projectUpdateSessionInvalidationPolicy", "tags": [ - "advisor" + "project" ], - "description": "List the insights produced under a single analyzer report. You can use the query params to filter your results further.\n", + "description": "Updating this policy allows you to control if existing sessions should be invalidated when a password of a user is changed. When enabled, and user changes their password, they will be logged out of all their devices.", "responses": { "200": { - "description": "Insights List", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/insightList" + "$ref": "#\/components\/schemas\/project" } } } @@ -53702,25 +53568,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "listInsights", - "group": "insights", - "weight": 698, + "method": "updateSessionInvalidationPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "advisor\/list-insights.md", + "demo": "project\/update-session-invalidation-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-insights.md", "auth": { "Project": [] } @@ -53728,64 +53593,233 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], - "parameters": [ - { - "name": "reportId", - "description": "Parent report ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<REPORT_ID>" - }, - "in": "path" - }, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Toggle session invalidation policy. Set to true if you want password change to invalidate all sessions of an user, or false to keep sessions active.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/policies\/session-limit": { + "patch": { + "summary": "Update session limit policy", + "operationId": "projectUpdateSessionLimitPolicy", + "tags": [ + "project" + ], + "description": "Update the maximum number of sessions allowed per user. When the limit is hit, the oldest session will be deleted to make room for new one.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateSessionLimitPolicy", + "group": "policies", + "cookies": false, + "type": "", + "demo": "project\/update-session-limit-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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: type, severity, status, resourceType, resourceId, parentResourceType, parentResourceId, analyzedAt, dismissedAt, dismissedBy", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 5000, or null to disable the limit.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "total" + ] + } + } + } + } + } + }, + "\/project\/policies\/user-limit": { + "patch": { + "summary": "Update user limit policy", + "operationId": "projectUpdateUserLimitPolicy", + "tags": [ + "project" + ], + "description": "Update the maximum number of users in the project. When the limit is hit or amount of existing users already exceeded the limit, all users remain active, but new user sign up will be prohibited.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateUserLimitPolicy", + "group": "policies", + "cookies": false, + "type": "", + "demo": "project\/update-user-limit-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], + "platforms": [ + "console", + "server" + ], + "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, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" + "Project": [], + "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Set the maximum number of users allowed in the project. Value can be between 1 and 5000, or null to disable the limit.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "total" + ] + } + } + } + } } }, - "\/reports\/{reportId}\/insights\/{insightId}": { + "\/project\/policies\/{policyId}": { "get": { - "summary": "Get insight", - "operationId": "advisorGetInsight", + "summary": "Get project policy", + "operationId": "projectGetPolicy", "tags": [ - "advisor" + "project" ], - "description": "Get an insight by its unique ID, scoped to its parent report.\n", + "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", "responses": { "200": { - "description": "Insight", + "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Personal Data, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/insight" + "oneOf": [ + { + "$ref": "#\/components\/schemas\/policyPasswordDictionary" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordHistory" + }, + { + "$ref": "#\/components\/schemas\/policyPasswordPersonalData" + }, + { + "$ref": "#\/components\/schemas\/policySessionAlert" + }, + { + "$ref": "#\/components\/schemas\/policySessionDuration" + }, + { + "$ref": "#\/components\/schemas\/policySessionInvalidation" + }, + { + "$ref": "#\/components\/schemas\/policySessionLimit" + }, + { + "$ref": "#\/components\/schemas\/policyUserLimit" + }, + { + "$ref": "#\/components\/schemas\/policyMembershipPrivacy" + } + ], + "discriminator": { + "propertyName": "$id", + "mapping": { + "password-dictionary": "#\/components\/schemas\/policyPasswordDictionary", + "password-history": "#\/components\/schemas\/policyPasswordHistory", + "password-personal-data": "#\/components\/schemas\/policyPasswordPersonalData", + "session-alert": "#\/components\/schemas\/policySessionAlert", + "session-duration": "#\/components\/schemas\/policySessionDuration", + "session-invalidation": "#\/components\/schemas\/policySessionInvalidation", + "session-limit": "#\/components\/schemas\/policySessionLimit", + "user-limit": "#\/components\/schemas\/policyUserLimit", + "membership-privacy": "#\/components\/schemas\/policyMembershipPrivacy" + } + } } } } @@ -53793,25 +53827,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "getInsight", - "group": "insights", - "weight": 697, + "method": "getPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "advisor\/get-insight.md", + "demo": "project\/get-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", + "scope": [ + "policies.read", + "project.policies.read" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-insight.md", "auth": { "Project": [] } @@ -53819,50 +53852,136 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "reportId", - "description": "Parent report ID.", + "name": "policyId", + "description": "Policy ID. Can be one of: password-dictionary, password-history, password-personal-data, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy.", "required": true, "schema": { "type": "string", - "x-example": "<REPORT_ID>" + "x-example": "password-dictionary", + "enum": [ + "password-dictionary", + "password-history", + "password-personal-data", + "session-alert", + "session-duration", + "session-invalidation", + "session-limit", + "user-limit", + "membership-privacy" + ], + "x-enum-name": "ProjectPolicyId" }, "in": "path" - }, + } + ] + } + }, + "\/project\/protocols\/{protocolId}": { + "patch": { + "summary": "Update project protocol", + "operationId": "projectUpdateProtocol", + "tags": [ + "project" + ], + "description": "Update properties of a specific protocol. Use this endpoint to enable or disable a protocol in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateProtocol", + "group": null, + "cookies": false, + "type": "", + "demo": "project\/update-protocol.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "insightId", - "description": "Insight ID.", + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "protocolId", + "description": "Protocol name. Can be one of: rest, graphql, websocket", "required": true, "schema": { "type": "string", - "x-example": "<INSIGHT_ID>" + "x-example": "rest", + "enum": [ + "rest", + "graphql", + "websocket" + ], + "x-enum-name": "ProjectProtocolId" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Protocol status.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } } }, - "\/sites": { - "get": { - "summary": "List sites", - "operationId": "sitesList", + "\/project\/services\/{serviceId}": { + "patch": { + "summary": "Update project service", + "operationId": "projectUpdateService", "tags": [ - "sites" + "project" ], - "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", "responses": { "200": { - "description": "Sites List", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/siteList" + "$ref": "#\/components\/schemas\/project" } } } @@ -53870,16 +53989,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "sites", - "weight": 479, + "method": "updateService", + "group": null, "cookies": false, "type": "", - "demo": "sites\/list.md", + "demo": "project\/update-service.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "project.write", "platforms": [ "console", "server" @@ -53898,56 +54016,73 @@ ], "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": "serviceId", + "description": "Service name. Can be one of: account, avatars, databases, tablesdb, locale, health, project, storage, teams, users, vcs, sites, functions, proxy, graphql, migrations, messaging, advisor", + "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": "account", + "enum": [ + "account", + "avatars", + "databases", + "tablesdb", + "locale", + "health", + "project", + "storage", + "teams", + "users", + "vcs", + "sites", + "functions", + "proxy", + "graphql", + "migrations", + "messaging", + "advisor" + ], + "x-enum-name": "ProjectServiceId" }, - "in": "query" + "in": "path" } - ] - }, - "post": { - "summary": "Create site", - "operationId": "sitesCreate", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Service status.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/project\/smtp": { + "patch": { + "summary": "Update project SMTP configuration", + "operationId": "projectUpdateSMTP", "tags": [ - "sites" + "project" ], - "description": "Create a new site.", + "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": { - "201": { - "description": "Site", + "200": { + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/project" } } } @@ -53955,16 +54090,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "sites", - "weight": 924, + "method": "updateSMTP", + "group": "smtp", "cookies": false, "type": "", - "demo": "sites\/create.md", + "demo": "project\/update-smtp.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -53987,279 +54121,105 @@ "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": { + "host": { "type": "string", - "description": "Site name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "SMTP server hostname (domain)", + "x-example": null, + "x-nullable": true }, - "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": { + "port": { "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>" - }, - "startCommand": { - "type": "string", - "description": "Custom start command. Leave empty to use default.", - "x-example": "<START_COMMAND>" + "description": "SMTP server port", + "x-example": null, + "format": "int32", + "x-nullable": true }, - "outputDirectory": { + "username": { "type": "string", - "description": "Output Directory for site.", - "x-example": "<OUTPUT_DIRECTORY>" + "description": "SMTP server username. Pass an empty string to clear a previously set value.", + "x-example": "<USERNAME>", + "x-nullable": true }, - "buildRuntime": { + "password": { "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", - "dart-3.11", - "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", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41" - ], - "x-enum-name": null, - "x-enum-keys": [] + "description": "SMTP server password. Pass an empty string to clear a previously set value. This property is stored securely and cannot be read in future (write-only).", + "x-example": "<PASSWORD>", + "x-nullable": true }, - "adapter": { + "senderEmail": { "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": [] + "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true }, - "installationId": { + "senderName": { "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "x-example": "<INSTALLATION_ID>" + "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "x-example": "<SENDER_NAME>", + "x-nullable": true }, - "fallbackFile": { + "replyToEmail": { "type": "string", - "description": "Fallback file for single page application sites.", - "x-example": "<FALLBACK_FILE>" + "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true }, - "providerRepositoryId": { + "replyToName": { "type": "string", - "description": "Repository ID of the repo linked to the site.", - "x-example": "<PROVIDER_REPOSITORY_ID>" + "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", + "x-example": "<REPLY_TO_NAME>", + "x-nullable": true }, - "providerBranch": { + "secure": { "type": "string", - "description": "Production branch for the repo linked to the site.", - "x-example": "<PROVIDER_BRANCH>" + "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", + "x-example": "tls", + "enum": [ + "tls", + "ssl" + ], + "x-enum-name": "ProjectSMTPSecure", + "x-nullable": true }, - "providerSilentMode": { + "enabled": { "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>" - }, - "buildSpecification": { - "type": "string", - "description": "Build specification for the site deployments.", - "x-example": null - }, - "runtimeSpecification": { - "type": "string", - "description": "Runtime specification for the SSR executions.", - "x-example": null - }, - "deploymentRetention": { - "type": "integer", - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "x-example": 0, - "format": "int32" + "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "siteId", - "name", - "framework", - "buildRuntime" - ] + } } } } } } }, - "\/sites\/frameworks": { - "get": { - "summary": "List frameworks", - "operationId": "sitesListFrameworks", + "\/project\/smtp\/tests": { + "post": { + "summary": "Create project SMTP test", + "operationId": "projectCreateSMTPTest", "tags": [ - "sites" + "project" ], - "description": "Get a list of all frameworks that are currently available on the server instance.", + "description": "Send a test email to verify SMTP configuration. ", "responses": { - "200": { - "description": "Frameworks List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/frameworkList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listFrameworks", - "group": "frameworks", - "weight": 482, + "method": "createSMTPTest", + "group": "smtp", "cookies": false, "type": "", - "demo": "sites\/list-frameworks.md", + "demo": "project\/create-smtp-test.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "project.write", "platforms": [ "console", "server" @@ -54275,74 +54235,46 @@ "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" - } + "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" + } + } + }, + "required": [ + "emails" + ] } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "listSpecifications", - "group": "frameworks", - "weight": 505, - "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": { + "\/project\/templates\/email": { "get": { - "summary": "List templates", - "operationId": "sitesListTemplates", + "summary": "List project email templates", + "operationId": "projectListEmailTemplates", "tags": [ - "sites" + "project" ], - "description": "List available site templates. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "description": "Get a list of all custom email templates configured for the project. This endpoint returns an array of all configured email templates and their locales.", "responses": { "200": { - "description": "Site Templates List", + "description": "Email Templates List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/templateSiteList" + "$ref": "#\/components\/schemas\/emailTemplateList" } } } @@ -54350,18 +54282,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTemplates", + "method": "listEmailTemplates", "group": "templates", - "weight": 501, "cookies": false, "type": "", - "demo": "sites\/list-templates.md", + "demo": "project\/list-email-templates.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "templates.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -54371,110 +54303,51 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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.", + "name": "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", - "enum": [ - "portfolio", - "starter", - "events", - "ecommerce", - "documentation", - "blog", - "ai", - "forms", - "dashboard" - ], - "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.", + "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" } ] - } - }, - "\/sites\/templates\/{templateId}": { - "get": { - "summary": "Get site template", - "operationId": "sitesGetTemplate", + }, + "patch": { + "summary": "Update project email template", + "operationId": "projectUpdateEmailTemplate", "tags": [ - "sites" + "project" ], - "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "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": "Template Site", + "description": "EmailTemplate", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/templateSite" + "$ref": "#\/components\/schemas\/emailTemplate" } } } @@ -54482,18 +54355,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTemplate", + "method": "updateEmailTemplate", "group": "templates", - "weight": 502, "cookies": false, "type": "", - "demo": "sites\/get-template.md", + "demo": "project\/update-email-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "templates.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -54503,110 +54376,448 @@ }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "templateId", - "description": "Template ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TEMPLATE_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } - ] - } - }, - "\/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": 503, - "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": { + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "templateId": { + "type": "string", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "ProjectEmailTemplateId" + }, + "locale": { + "type": "string", + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "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": "ProjectEmailTemplateLocale" + }, + "subject": { + "type": "string", + "description": "Subject of the email template. Can be up to 255 characters.", + "x-example": "<SUBJECT>", + "x-nullable": true + }, + "message": { + "type": "string", + "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", + "x-example": "<MESSAGE>", + "x-nullable": true + }, + "senderName": { + "type": "string", + "description": "Name of the email sender.", + "x-example": "<SENDER_NAME>", + "x-nullable": true + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "replyToEmail": { + "type": "string", + "description": "Reply to email. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "replyToName": { + "type": "string", + "description": "Reply to name.", + "x-example": "<REPLY_TO_NAME>", + "x-nullable": true + } + }, + "required": [ + "templateId" + ] + } + } + } + } + } + }, + "\/project\/templates\/email\/{templateId}": { + "get": { + "summary": "Get project email template", + "operationId": "projectGetEmailTemplate", + "tags": [ + "project" + ], + "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", + "cookies": false, + "type": "", + "demo": "project\/get-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "templates.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "templateId", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "required": true, "schema": { "type": "string", - "x-example": "24h", + "x-example": "verification", "enum": [ - "24h", - "30d", - "90d" + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" + "x-enum-name": "ProjectEmailTemplateId" + }, + "in": "path" + }, + { + "name": "locale", + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "required": false, + "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" ], - "default": "30d" + "x-enum-name": "ProjectEmailTemplateLocale" }, "in": "query" } ] } }, - "\/sites\/{siteId}": { + "\/project\/usage": { "get": { - "summary": "Get site", - "operationId": "sitesGet", + "summary": "Get project usage stats", + "operationId": "projectGetUsage", "tags": [ - "sites" + "project" ], - "description": "Get a site by its unique ID.", + "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": "Site", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/usageProject" } } } @@ -54614,59 +54825,87 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "sites", - "weight": 478, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "sites\/get.md", + "demo": "project\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "startDate", + "description": "Starting date for the usage", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "in": "path" + "in": "query" + }, + { + "name": "endDate", + "description": "End date for the usage", + "required": true, + "schema": { + "type": "string", + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "in": "query" + }, + { + "name": "period", + "description": "Period used", + "required": false, + "schema": { + "type": "string", + "x-example": "1h", + "enum": [ + "1h", + "1d" + ], + "x-enum-name": "ProjectUsageRange", + "default": "1d" + }, + "in": "query" } ] - }, - "put": { - "summary": "Update site", - "operationId": "sitesUpdate", + } + }, + "\/project\/variables": { + "get": { + "summary": "List project variables", + "operationId": "projectListVariables", "tags": [ - "sites" + "project" ], - "description": "Update site by its unique ID.", + "description": "Get a list of all project environment variables.", "responses": { "200": { - "description": "Site", + "description": "Variables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/variableList" } } } @@ -54674,16 +54913,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "sites", - "weight": 925, + "method": "listVariables", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/update.md", + "demo": "project\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "project.read", "platforms": [ "console", "server" @@ -54702,14 +54940,75 @@ ], "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: key, resourceType, resourceId, secret", + "required": false, "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" + "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 project variable", + "operationId": "projectCreateVariable", + "tags": [ + "project" + ], + "description": "Create a new project environment variable. These variables can be accessed by all functions and sites in the project.", + "responses": { + "201": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createVariable", + "group": "variables", + "cookies": false, + "type": "", + "demo": "project\/create-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "project.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] } ], "requestBody": { @@ -54718,263 +55017,70 @@ "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>" - }, - "startCommand": { - "type": "string", - "description": "Custom start command. Leave empty to use default.", - "x-example": "<START_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", - "dart-3.11", - "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", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41" - ], - "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": { + "variableId": { "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "x-example": "<INSTALLATION_ID>" + "description": "Variable 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": "<VARIABLE_ID>" }, - "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 projects can read them during build and runtime.", + "default": true, "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site code in the linked repo.", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "buildSpecification": { - "type": "string", - "description": "Build specification for the site deployments.", - "x-example": null - }, - "runtimeSpecification": { - "type": "string", - "description": "Runtime specification for the SSR executions.", - "x-example": null - }, - "deploymentRetention": { - "type": "integer", - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "x-example": 0, - "format": "int32" } }, "required": [ - "name", - "framework" + "variableId", + "key", + "value" ] } } } } - }, - "delete": { - "summary": "Delete site", - "operationId": "sitesDelete", + } + }, + "\/project\/variables\/{variableId}": { + "get": { + "summary": "Get project variable", + "operationId": "projectGetVariable", "tags": [ - "sites" + "project" ], - "description": "Delete a site by its unique ID.", + "description": "Get a variable by its unique ID. ", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "sites", - "weight": 481, + "method": "getVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/delete.md", + "demo": "project\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "project.read", "platforms": [ "console", "server" @@ -54993,33 +55099,31 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<VARIABLE_ID>" }, "in": "path" } ] - } - }, - "\/sites\/{siteId}\/deployment": { - "patch": { - "summary": "Update site's deployment", - "operationId": "sitesUpdateSiteDeployment", + }, + "put": { + "summary": "Update project variable", + "operationId": "projectUpdateVariable", "tags": [ - "sites" + "project" ], - "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 variable by its unique ID.", "responses": { "200": { - "description": "Site", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/variable" } } } @@ -55027,16 +55131,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSiteDeployment", - "group": "sites", - "weight": 488, + "method": "updateVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/update-site-deployment.md", + "demo": "project\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -55055,12 +55158,12 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<VARIABLE_ID>" }, "in": "path" } @@ -55071,53 +55174,53 @@ "schema": { "type": "object", "properties": { - "deploymentId": { + "key": { "type": "string", - "description": "Deployment ID.", - "x-example": "<DEPLOYMENT_ID>" + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>", + "x-nullable": true + }, + "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 projects can read them during build and runtime.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "deploymentId" - ] + } } } } } - } - }, - "\/sites\/{siteId}\/deployments": { - "get": { - "summary": "List deployments", - "operationId": "sitesListDeployments", + }, + "delete": { + "summary": "Delete project variable", + "operationId": "projectDeleteVariable", "tags": [ - "sites" + "project" ], - "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "description": "Delete a variable by its unique ID. ", "responses": { - "200": { - "description": "Deployments List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deploymentList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 487, + "method": "deleteVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/list-deployments.md", + "demo": "project\/delete-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "project.write", "platforms": [ "console", "server" @@ -55136,171 +55239,86 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_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: 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": "sitesCreateDeployment", + } + }, + "\/projects\/{projectId}\/console-access": { + "patch": { + "summary": "Record console access to a project", + "operationId": "projectsUpdateConsoleAccess", "tags": [ - "sites" + "projects" ], - "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": "Record console access to a project. This endpoint updates the last accessed timestamp for the project to track console activity.\n", "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createDeployment", - "group": "deployments", - "weight": 483, + "method": "updateConsoleAccess", + "group": null, "cookies": false, - "type": "upload", - "demo": "sites\/create-deployment.md", + "type": "", + "demo": "projects\/update-console-access.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "projects.write", "platforms": [ - "console", - "server" + "console" ], - "packaging": true, + "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-console-access.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project ID", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } - ], - "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" - ] - } - } - } - } + ] } }, - "\/sites\/{siteId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "sitesCreateDuplicateDeployment", + "\/projects\/{projectId}\/dev-keys": { + "get": { + "summary": "List dev keys", + "operationId": "projectsListDevKeys", "tags": [ - "sites" + "projects" ], - "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": "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": { - "202": { - "description": "Deployment", + "200": { + "description": "Dev Keys List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/devKeyList" } } } @@ -55308,19 +55326,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", - "weight": 491, + "method": "listDevKeys", + "group": "devKeys", "cookies": false, "type": "", - "demo": "sites\/create-duplicate-deployment.md", + "demo": "projects\/list-dev-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "devKeys.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -55330,58 +55346,49 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "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" } - ], - "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", + "summary": "Create dev key", + "operationId": "projectsCreateDevKey", "tags": [ - "sites" + "projects" ], - "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 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": { - "202": { - "description": "Deployment", + "201": { + "description": "DevKey", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/devKey" } } } @@ -55389,19 +55396,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 484, + "method": "createDevKey", + "group": "devKeys", "cookies": false, "type": "", - "demo": "sites\/create-template-deployment.md", + "demo": "projects\/create-dev-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "devKeys.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -55411,18 +55416,17 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } @@ -55433,50 +55437,21 @@ "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": { + "name": { "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": [] + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "reference": { + "expire": { "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 + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" } }, "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" + "name", + "expire" ] } } @@ -55484,21 +55459,21 @@ } } }, - "\/sites\/{siteId}\/deployments\/vcs": { - "post": { - "summary": "Create VCS deployment", - "operationId": "sitesCreateVcsDeployment", + "\/projects\/{projectId}\/dev-keys\/{keyId}": { + "get": { + "summary": "Get dev key", + "operationId": "projectsGetDevKey", "tags": [ - "sites" + "projects" ], - "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 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": { - "202": { - "description": "Deployment", + "200": { + "description": "DevKey", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/devKey" } } } @@ -55506,19 +55481,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 485, + "method": "getDevKey", + "group": "devKeys", "cookies": false, "type": "", - "demo": "sites\/create-vcs-deployment.md", + "demo": "projects\/get-dev-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "devKeys.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -55528,76 +55501,46 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "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": { - "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", + ] + }, + "put": { + "summary": "Update dev key", + "operationId": "projectsUpdateDevKey", "tags": [ - "sites" + "projects" ], - "description": "Get a site deployment by its unique ID.", + "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": "Deployment", + "description": "DevKey", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/devKey" } } } @@ -55605,19 +55548,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 486, + "method": "updateDevKey", + "group": "devKeys", "cookies": false, "type": "", - "demo": "sites\/get-deployment.md", + "demo": "projects\/update-dev-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "devKeys.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -55627,40 +55568,65 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "keyId", + "description": "Key unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + } + }, + "required": [ + "name", + "expire" + ] + } + } + } + } }, "delete": { - "summary": "Delete deployment", - "operationId": "sitesDeleteDeployment", + "summary": "Delete dev key", + "operationId": "projectsDeleteDevKey", "tags": [ - "sites" + "projects" ], - "description": "Delete a site deployment by its unique ID.", + "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" @@ -55668,19 +55634,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 489, + "method": "deleteDevKey", + "group": "devKeys", "cookies": false, "type": "", - "demo": "sites\/delete-deployment.md", + "demo": "projects\/delete-dev-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "devKeys.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -55690,133 +55654,130 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "keyId", + "description": "Key unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<KEY_ID>" }, "in": "path" } ] } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "\/projects\/{projectId}\/schedules": { "get": { - "summary": "Get deployment download", - "operationId": "sitesGetDeploymentDownload", + "summary": "List schedules", + "operationId": "projectsListSchedules", "tags": [ - "sites" + "projects" ], - "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 the project's schedules. You can use the query params to filter your results.", "responses": { "200": { - "description": "File" + "description": "Schedules List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/scheduleList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 490, + "method": "listSchedules", + "group": "schedules", "cookies": false, - "type": "location", - "demo": "sites\/get-deployment-download.md", + "type": "", + "demo": "projects\/list-schedules.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "schedules.read", "platforms": [ - "console", - "server", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-schedules.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<PROJECT_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 attributes: resourceType, resourceId, projectId, schedule, active, region", + "required": false, "schema": { - "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "type": "array", + "items": { + "type": "string" + }, + "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 schedule", + "operationId": "projectsCreateSchedule", "tags": [ - "sites" + "projects" ], - "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 schedule for a resource.", "responses": { - "200": { - "description": "Deployment", + "201": { + "description": "Schedule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/schedule" } } } @@ -55824,157 +55785,108 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 492, + "method": "createSchedule", + "group": "schedules", "cookies": false, "type": "", - "demo": "sites\/update-deployment-status.md", + "demo": "projects\/create-schedule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "schedules.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-schedule.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.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" } - ] - } - }, - "\/sites\/{siteId}\/logs": { - "get": { - "summary": "List logs", - "operationId": "sitesListLogs", - "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", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/executionList" - } + "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": "ScheduleResourceType" + }, + "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.", + "default": false, + "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" + ] } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 494, - "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, - "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" - } - ] + } } }, - "\/sites\/{siteId}\/logs\/{logId}": { + "\/projects\/{projectId}\/schedules\/{scheduleId}": { "get": { - "summary": "Get log", - "operationId": "sitesGetLog", + "summary": "Get schedule", + "operationId": "projectsGetSchedule", "tags": [ - "sites" + "projects" ], - "description": "Get a site request log by its unique ID.", + "description": "Get a schedule by its unique ID.", "responses": { "200": { - "description": "Execution", + "description": "Schedule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/schedule" } } } @@ -55982,62 +55894,62 @@ }, "deprecated": false, "x-appwrite": { - "method": "getLog", - "group": "logs", - "weight": 493, + "method": "getSchedule", + "group": "schedules", "cookies": false, "type": "", - "demo": "sites\/get-log.md", + "demo": "projects\/get-schedule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": "schedules.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-schedule.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<PROJECT_ID>" }, "in": "path" }, { - "name": "logId", - "description": "Log ID.", + "name": "scheduleId", + "description": "Schedule ID.", "required": true, "schema": { "type": "string", - "x-example": "<LOG_ID>" + "x-example": "<SCHEDULE_ID>" }, "in": "path" } ] - }, - "delete": { - "summary": "Delete log", - "operationId": "sitesDeleteLog", + } + }, + "\/projects\/{projectId}\/status": { + "patch": { + "summary": "Update the status of a project", + "operationId": "projectsUpdateStatus", "tags": [ - "sites" + "projects" ], - "description": "Delete a site log by its unique ID.", + "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" @@ -56045,71 +55957,82 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteLog", - "group": "logs", - "weight": 495, + "method": "updateStatus", + "group": null, "cookies": false, "type": "", - "demo": "sites\/delete-log.md", - "rate-limit": 0, + "demo": "projects\/update-status.md", + "rate-limit": 10, "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "log.write", + "rate-key": "ip:{ip},userId:{userId}", + "scope": "projects.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-status.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": "logId", - "description": "Log ID.", + "name": "projectId", + "description": "Project ID", "required": true, "schema": { "type": "string", - "x-example": "<LOG_ID>" + "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": "ProjectStatus" + } + }, + "required": [ + "status" + ] + } + } + } + } } }, - "\/sites\/{siteId}\/usage": { - "get": { - "summary": "Get site usage", - "operationId": "sitesGetUsage", + "\/projects\/{projectId}\/team": { + "patch": { + "summary": "Update project team", + "operationId": "projectsUpdateTeam", "tags": [ - "sites" + "projects" ], - "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": "Update the team ID of a project allowing for it to be transferred to another team.", "responses": { "200": { - "description": "UsageSite", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageSite" + "$ref": "#\/components\/schemas\/project" } } } @@ -56117,21 +56040,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 504, + "method": "updateTeam", + "group": "projects", "cookies": false, "type": "", - "demo": "sites\/get-usage.md", + "demo": "projects\/update-team.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "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": [] } @@ -56143,55 +56066,52 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<PROJECT_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" } - ] + ], + "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" + ] + } + } + } + } } }, - "\/sites\/{siteId}\/variables": { + "\/proxy\/rules": { "get": { - "summary": "List variables", - "operationId": "sitesListVariables", + "summary": "List rules", + "operationId": "proxyListRules", "tags": [ - "sites" + "proxy" ], - "description": "Get a list of all variables of a specific site.", + "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", "responses": { "200": { - "description": "Variables List", + "description": "Rule List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variableList" + "$ref": "#\/components\/schemas\/proxyRuleList" } } } @@ -56199,16 +56119,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 498, + "method": "listRules", + "group": "rules", "cookies": false, "type": "", - "demo": "sites\/list-variables.md", + "demo": "proxy\/list-rules.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "rules.read", "platforms": [ "console", "server" @@ -56226,19 +56145,9 @@ } ], "parameters": [ - { - "name": "siteId", - "description": "Site unique 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: key, resourceType, resourceId, secret", + "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", @@ -56261,21 +56170,23 @@ "in": "query" } ] - }, + } + }, + "\/proxy\/rules\/api": { "post": { - "summary": "Create variable", - "operationId": "sitesCreateVariable", + "summary": "Create API rule", + "operationId": "proxyCreateAPIRule", "tags": [ - "sites" + "proxy" ], - "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 proxy rule for serving Appwrite's API on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", "responses": { "201": { - "description": "Variable", + "description": "Rule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/proxyRule" } } } @@ -56283,16 +56194,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 926, + "method": "createAPIRule", + "group": "rules", "cookies": false, "type": "", - "demo": "sites\/create-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "demo": "proxy\/create-api-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", "platforms": [ "console", "server" @@ -56309,16 +56219,72 @@ "Key": [] } ], - "parameters": [ + "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.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createFunctionRule", + "group": "rules", + "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", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -56327,31 +56293,26 @@ "schema": { "type": "object", "properties": { - "variableId": { + "domain": { "type": "string", - "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "x-example": "<VARIABLE_ID>" + "description": "Domain name.", + "x-example": null }, - "key": { + "functionId": { "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" + "description": "ID of function to be executed.", + "x-example": "<FUNCTION_ID>" }, - "value": { + "branch": { "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 + "description": "Name of VCS branch to deploy changes automatically", + "default": "", + "x-example": "<BRANCH>" } }, "required": [ - "variableId", - "key", - "value" + "domain", + "functionId" ] } } @@ -56359,21 +56320,21 @@ } } }, - "\/sites\/{siteId}\/variables\/{variableId}": { - "get": { - "summary": "Get variable", - "operationId": "sitesGetVariable", + "\/proxy\/rules\/redirect": { + "post": { + "summary": "Create Redirect rule", + "operationId": "proxyCreateRedirectRule", "tags": [ - "sites" + "proxy" ], - "description": "Get a variable by its unique ID.", + "description": "Create a new proxy rule for to redirect from custom domain to another domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", "responses": { - "200": { - "description": "Variable", + "201": { + "description": "Rule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/proxyRule" } } } @@ -56381,16 +56342,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 497, + "method": "createRedirectRule", + "group": "rules", "cookies": false, "type": "", - "demo": "sites\/get-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "demo": "proxy\/create-redirect-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", "platforms": [ "console", "server" @@ -56407,43 +56367,83 @@ "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" + "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": "RedirectStatusCode" + }, + "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" + ] + } + } } - ] - }, - "put": { - "summary": "Update variable", - "operationId": "sitesUpdateVariable", + } + } + }, + "\/proxy\/rules\/site": { + "post": { + "summary": "Create site rule", + "operationId": "proxyCreateSiteRule", "tags": [ - "sites" + "proxy" ], - "description": "Update variable by its unique ID.", + "description": "Create a new proxy rule for serving Appwrite Site on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", "responses": { - "200": { - "description": "Variable", + "201": { + "description": "Rule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/proxyRule" } } } @@ -56451,16 +56451,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 499, + "method": "createSiteRule", + "group": "rules", "cookies": false, "type": "", - "demo": "sites\/update-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "demo": "proxy\/create-site-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", "platforms": [ "console", "server" @@ -56477,82 +56476,70 @@ "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" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "key": { + "domain": { "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>", - "x-nullable": true + "description": "Domain name.", + "x-example": null }, - "value": { + "siteId": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>", - "x-nullable": true + "description": "ID of site to be executed.", + "x-example": "<SITE_ID>" }, - "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 + "branch": { + "type": "string", + "description": "Name of VCS branch to deploy changes automatically", + "default": "", + "x-example": "<BRANCH>" } - } + }, + "required": [ + "domain", + "siteId" + ] } } } } - }, - "delete": { - "summary": "Delete variable", - "operationId": "sitesDeleteVariable", + } + }, + "\/proxy\/rules\/{ruleId}": { + "get": { + "summary": "Get rule", + "operationId": "proxyGetRule", "tags": [ - "sites" + "proxy" ], - "description": "Delete a variable by its unique ID.", + "description": "Get a proxy rule by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 500, + "method": "getRule", + "group": "rules", "cookies": false, "type": "", - "demo": "sites\/delete-variable.md", + "demo": "proxy\/get-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "rules.read", "platforms": [ "console", "server" @@ -56571,67 +56558,46 @@ ], "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": "ruleId", + "description": "Rule ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<RULE_ID>" }, "in": "path" } ] - } - }, - "\/storage\/buckets": { - "get": { - "summary": "List buckets", - "operationId": "storageListBuckets", + }, + "delete": { + "summary": "Delete rule", + "operationId": "proxyDeleteRule", "tags": [ - "storage" + "proxy" ], - "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", + "description": "Delete a proxy rule by its unique ID.", "responses": { - "200": { - "description": "Buckets List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucketList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listBuckets", - "group": "buckets", - "weight": 550, + "method": "deleteRule", + "group": "rules", "cookies": false, "type": "", - "demo": "storage\/list-buckets.md", + "demo": "proxy\/delete-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", + "scope": "rules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", "auth": { "Project": [] } @@ -56644,56 +56610,33 @@ ], "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, - "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": "ruleId", + "description": "Rule 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": "<RULE_ID>" }, - "in": "query" + "in": "path" } ] - }, - "post": { - "summary": "Create bucket", - "operationId": "storageCreateBucket", + } + }, + "\/proxy\/rules\/{ruleId}\/status": { + "patch": { + "summary": "Update rule status", + "operationId": "proxyUpdateRuleStatus", "tags": [ - "storage" + "proxy" ], - "description": "Create a new storage bucket.", + "description": "If not succeeded yet, retry verification process of a proxy rule domain. This endpoint triggers domain verification by checking DNS records. If verification is successful, a TLS certificate will be automatically provisioned for the domain asynchronously in the background.", "responses": { - "201": { - "description": "Bucket", + "200": { + "description": "Rule", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/bucket" + "$ref": "#\/components\/schemas\/proxyRule" } } } @@ -56701,23 +56644,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBucket", - "group": "buckets", - "weight": 548, + "method": "updateRuleStatus", + "group": "rules", "cookies": false, "type": "", - "demo": "storage\/create-bucket.md", + "demo": "proxy\/update-rule-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "scope": "rules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", "auth": { "Project": [] } @@ -56728,108 +56669,35 @@ "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" - ] - } - } + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RULE_ID>" + }, + "in": "path" } - } + ] } }, - "\/storage\/buckets\/{bucketId}": { + "\/reports": { "get": { - "summary": "Get bucket", - "operationId": "storageGetBucket", + "summary": "List reports", + "operationId": "advisorListReports", "tags": [ - "storage" + "advisor" ], - "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", + "description": "Get a list of all the project's analyzer reports. You can use the query params to filter your results.\n", "responses": { "200": { - "description": "Bucket", + "description": "Reports List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/bucket" + "$ref": "#\/components\/schemas\/reportList" } } } @@ -56837,23 +56705,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getBucket", - "group": "buckets", - "weight": 549, + "method": "listReports", + "group": "reports", "cookies": false, "type": "", - "demo": "storage\/get-bucket.md", + "demo": "advisor\/list-reports.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", + "scope": "reports.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\/advisor\/list-reports.md", "auth": { "Project": [] } @@ -56866,31 +56733,47 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket 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: appId, type, targetType, target, analyzedAt", + "required": false, "schema": { - "type": "string", - "x-example": "<BUCKET_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" } ] - }, - "put": { - "summary": "Update bucket", - "operationId": "storageUpdateBucket", + } + }, + "\/reports\/{reportId}": { + "get": { + "summary": "Get report", + "operationId": "advisorGetReport", "tags": [ - "storage" + "advisor" ], - "description": "Update a storage bucket by its unique ID.", + "description": "Get an analyzer report by its unique ID. The response includes the report's metadata and the nested insights it produced.\n", "responses": { "200": { - "description": "Bucket", + "description": "Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/bucket" + "$ref": "#\/components\/schemas\/report" } } } @@ -56898,23 +56781,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBucket", - "group": "buckets", - "weight": 551, + "method": "getReport", + "group": "reports", "cookies": false, "type": "", - "demo": "storage\/update-bucket.md", + "demo": "advisor\/get-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "scope": "reports.read", "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\/advisor\/get-report.md", "auth": { "Project": [] } @@ -56927,103 +56809,24 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "reportId", + "description": "Report ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<REPORT_ID>" }, "in": "path" } + ] + }, + "delete": { + "summary": "Delete report", + "operationId": "advisorDeleteReport", + "tags": [ + "advisor" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "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": [ - "name" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete bucket", - "operationId": "storageDeleteBucket", - "tags": [ - "storage" - ], - "description": "Delete a storage bucket by its unique ID.", + "description": "Delete an analyzer report by its unique ID. Nested insights and CTA metadata are removed asynchronously by the deletes worker.\n", "responses": { "204": { "description": "No content" @@ -57031,23 +56834,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteBucket", - "group": "buckets", - "weight": 552, + "method": "deleteReport", + "group": "reports", "cookies": false, "type": "", - "demo": "storage\/delete-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "demo": "advisor\/delete-report.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{projectId},userId:{userId}", + "scope": "reports.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\/advisor\/delete-report.md", "auth": { "Project": [] } @@ -57060,33 +56862,33 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "reportId", + "description": "Report ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<REPORT_ID>" }, "in": "path" } ] } }, - "\/storage\/buckets\/{bucketId}\/files": { + "\/reports\/{reportId}\/insights": { "get": { - "summary": "List files", - "operationId": "storageListFiles", + "summary": "List insights", + "operationId": "advisorListInsights", "tags": [ - "storage" + "advisor" ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", + "description": "List the insights produced under a single analyzer report. You can use the query params to filter your results further.\n", "responses": { "200": { - "description": "Files List", + "description": "Insights List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/fileList" + "$ref": "#\/components\/schemas\/insightList" } } } @@ -57094,25 +56896,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listFiles", - "group": "files", - "weight": 555, + "method": "listInsights", + "group": "insights", "cookies": false, "type": "", - "demo": "storage\/list-files.md", + "demo": "advisor\/list-insights.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "insights.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\/advisor\/list-insights.md", "auth": { "Project": [] } @@ -57120,25 +56919,23 @@ "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": "reportId", + "description": "Parent report ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<REPORT_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 attributes: type, severity, status, resourceType, resourceId, parentResourceType, parentResourceId, analyzedAt, dismissedAt, dismissedBy", "required": false, "schema": { "type": "array", @@ -57149,17 +56946,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.", @@ -57172,21 +56958,23 @@ "in": "query" } ] - }, - "post": { - "summary": "Create file", - "operationId": "storageCreateFile", + } + }, + "\/reports\/{reportId}\/insights\/{insightId}": { + "get": { + "summary": "Get insight", + "operationId": "advisorGetInsight", "tags": [ - "storage" + "advisor" ], - "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": "Get an insight by its unique ID, scoped to its parent report.\n", "responses": { - "201": { - "description": "File", + "200": { + "description": "Insight", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/insight" } } } @@ -57194,25 +56982,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFile", - "group": "files", - "weight": 1208, + "method": "getInsight", + "group": "insights", "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": "advisor\/get-insight.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "insights.read", "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\/advisor\/get-insight.md", "auth": { "Project": [] } @@ -57220,76 +57005,48 @@ "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": "reportId", + "description": "Parent report ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<REPORT_ID>" + }, + "in": "path" + }, + { + "name": "insightId", + "description": "Insight ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<INSIGHT_ID>" }, "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": "<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": [ - "fileId", - "file" - ] - } - } - } - } + ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "\/sites": { "get": { - "summary": "Get file", - "operationId": "storageGetFile", + "summary": "List sites", + "operationId": "sitesList", "tags": [ - "storage" + "sites" ], - "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 project's sites. You can use the query params to filter your results.", "responses": { "200": { - "description": "File", + "description": "Sites List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/siteList" } } } @@ -57297,25 +57054,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFile", - "group": "files", - "weight": 554, + "method": "list", + "group": "sites", "cookies": false, "type": "", - "demo": "storage\/get-file.md", + "demo": "sites\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "sites.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": [] } @@ -57323,48 +57076,61 @@ "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).", - "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, "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "fileId", - "description": "File ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<FILE_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 file", - "operationId": "storageUpdateFile", + "post": { + "summary": "Create site", + "operationId": "sitesCreate", "tags": [ - "storage" + "sites" ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "description": "Create a new site.", "responses": { - "200": { - "description": "File", + "201": { + "description": "Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/site" } } } @@ -57372,25 +57138,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateFile", - "group": "files", - "weight": 556, + "method": "create", + "group": "sites", "cookies": false, "type": "", - "demo": "storage\/update-file.md", + "demo": "sites\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", + "scope": "sites.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": [] } @@ -57398,31 +57160,7 @@ "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" + "Key": [] } ], "requestBody": { @@ -57431,210 +57169,317 @@ "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": "File name.", + "description": "Site 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" - }, - "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": 557, - "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": [], - "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", - "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": 559, - "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": [], - "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, - "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" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TOKEN>", - "default": "" - }, - "in": "query" + "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": "SiteFramework" + }, + "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>" + }, + "startCommand": { + "type": "string", + "description": "Custom start command. Leave empty to use default.", + "default": "", + "x-example": "<START_COMMAND>" + }, + "outputDirectory": { + "type": "string", + "description": "Output Directory for site.", + "default": "", + "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", + "dart-3.11", + "dart-3.12", + "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", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ], + "x-enum-name": "SiteBuildRuntime" + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": "SiteAdapter" + }, + "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>" + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "buildSpecification": { + "type": "string", + "description": "Build specification for the site deployments.", + "default": {}, + "x-example": null + }, + "runtimeSpecification": { + "type": "string", + "description": "Runtime specification for the SSR executions.", + "default": {}, + "x-example": null + }, + "deploymentRetention": { + "type": "integer", + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "siteId", + "name", + "framework", + "buildRuntime" + ] + } + } } - ] + } } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "\/sites\/frameworks": { "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", + "summary": "List frameworks", + "operationId": "sitesListFrameworks", "tags": [ - "storage" + "sites" ], - "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 a list of all frameworks that are currently available on the server instance.", "responses": { "200": { - "description": "Image" + "description": "Frameworks List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/frameworkList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getFilePreview", - "group": "files", - "weight": 558, + "method": "listFrameworks", + "group": "frameworks", "cookies": false, - "type": "location", - "demo": "storage\/get-file-preview.md", + "type": "", + "demo": "sites\/list-frameworks.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "public", "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": [] } @@ -57642,117 +57487,177 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } + ] + } + }, + "\/sites\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "sitesListSpecifications", + "tags": [ + "sites" ], - "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" - }, + "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", + "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": [ { - "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" - }, + "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", + "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": [ { - "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" - }, + "Project": [] + } + ], + "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": "frameworks", + "description": "List of frameworks allowed for filtering site templates. Maximum of 100 frameworks are allowed.", "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" + "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": "SiteFramework" + }, + "default": [] }, "in": "query" }, { - "name": "quality", - "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "name": "useCases", + "description": "List of use cases allowed for filtering site templates. Maximum of 100 use cases are allowed.", "required": false, "schema": { - "type": "integer", - "format": "int32", - "x-example": -1, - "default": -1 + "type": "array", + "items": { + "type": "string", + "enum": [ + "portfolio", + "starter", + "events", + "ecommerce", + "documentation", + "blog", + "ai", + "forms", + "dashboard" + ], + "x-enum-name": "SiteTemplateUseCase" + }, + "default": [] }, "in": "query" }, { - "name": "borderWidth", - "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "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": 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": "" + "x-example": 1, + "default": 25 }, "in": "query" }, { - "name": "borderRadius", - "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", + "name": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", "required": false, "schema": { "type": "integer", @@ -57761,173 +57666,25 @@ "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" - } - ] - } - }, - "\/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": 560, - "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": [], - "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" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TOKEN>", - "default": "" - }, - "in": "query" } ] } }, - "\/storage\/usage": { + "\/sites\/templates\/{templateId}": { "get": { - "summary": "Get storage usage stats", - "operationId": "storageGetUsage", + "summary": "Get site template", + "operationId": "sitesGetTemplate", "tags": [ - "storage" + "sites" ], - "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": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", "responses": { "200": { - "description": "StorageUsage", + "description": "Template Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageStorage" + "$ref": "#\/components\/schemas\/templateSite" } } } @@ -57935,22 +57692,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 562, + "method": "getTemplate", + "group": "templates", "cookies": false, "type": "", - "demo": "storage\/get-usage.md", + "demo": "sites\/get-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "public", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-usage.md", "auth": { "Project": [] } @@ -57962,45 +57717,33 @@ ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "templateId", + "description": "Template 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": "<TEMPLATE_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/storage\/{bucketId}\/usage": { + "\/sites\/usage": { "get": { - "summary": "Get bucket usage stats", - "operationId": "storageGetBucketUsage", + "summary": "Get sites usage", + "operationId": "sitesListUsage", "tags": [ - "storage" + "sites" ], - "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": "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": "UsageBuckets", + "description": "UsageSites", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageBuckets" + "$ref": "#\/components\/schemas\/usageSites" } } } @@ -58008,22 +57751,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "getBucketUsage", + "method": "listUsage", "group": null, - "weight": 563, "cookies": false, "type": "", - "demo": "storage\/get-bucket-usage.md", + "demo": "sites\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "sites.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket-usage.md", "auth": { "Project": [] } @@ -58034,16 +57775,6 @@ } ], "parameters": [ - { - "name": "bucketId", - "description": "Bucket ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, { "name": "range", "description": "Date range.", @@ -58069,21 +57800,21 @@ ] } }, - "\/tablesdb": { + "\/sites\/{siteId}": { "get": { - "summary": "List databases", - "operationId": "tablesDBList", + "summary": "Get site", + "operationId": "sitesGet", "tags": [ - "tablesDB" + "sites" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Get a site by its unique ID.", "responses": { "200": { - "description": "Databases List", + "description": "Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/databaseList" + "$ref": "#\/components\/schemas\/site" } } } @@ -58091,23 +57822,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "tablesdb", - "weight": 780, + "method": "get", + "group": "sites", "cookies": false, "type": "", - "demo": "tablesdb\/list.md", + "demo": "sites\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", "auth": { "Project": [] } @@ -58120,56 +57849,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 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": "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" } ] }, - "post": { - "summary": "Create database", - "operationId": "tablesDBCreate", + "put": { + "summary": "Update site", + "operationId": "sitesUpdate", "tags": [ - "tablesDB" + "sites" ], - "description": "Create a new Database.\n", + "description": "Update site by its unique ID.", "responses": { - "201": { - "description": "Database", + "200": { + "description": "Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/site" } } } @@ -58177,23 +57881,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "tablesdb", - "weight": 776, + "method": "update", + "group": "sites", "cookies": false, "type": "", - "demo": "tablesdb\/create.md", + "demo": "sites\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", "auth": { "Project": [] } @@ -58204,228 +57906,319 @@ "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": { - "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.", + "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": "SiteFramework" + }, "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.", + "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 - } - }, - "required": [ - "databaseId", - "name" - ] - } - } - } - } - } - }, - "\/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": 849, - "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": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create transaction", - "operationId": "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": 845, - "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": [], - "Session": [], - "JWT": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "ttl": { + }, + "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": "Seconds before the transaction expires.", - "x-example": 60, + "description": "Maximum request time in seconds.", + "default": 30, + "x-example": 1, "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" - } + }, + "installCommand": { + "type": "string", + "description": "Install Command.", + "default": "", + "x-example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "type": "string", + "description": "Build Command.", + "default": "", + "x-example": "<BUILD_COMMAND>" + }, + "startCommand": { + "type": "string", + "description": "Custom start command. Leave empty to use default.", + "default": "", + "x-example": "<START_COMMAND>" + }, + "outputDirectory": { + "type": "string", + "description": "Output Directory for site.", + "default": "", + "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", + "dart-3.11", + "dart-3.12", + "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", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ], + "x-enum-name": "SiteBuildRuntime" + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": "SiteAdapter" + }, + "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>" + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "buildSpecification": { + "type": "string", + "description": "Build specification for the site deployments.", + "default": {}, + "x-example": null + }, + "runtimeSpecification": { + "type": "string", + "description": "Runtime specification for the SSR executions.", + "default": {}, + "x-example": null + }, + "deploymentRetention": { + "type": "integer", + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "name", + "framework" + ] } } } + } + }, + "delete": { + "summary": "Delete site", + "operationId": "sitesDelete", + "tags": [ + "sites" + ], + "description": "Delete a site by its unique ID.", + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 846, + "method": "delete", + "group": "sites", "cookies": false, "type": "", - "demo": "tablesdb\/get-transaction.md", + "demo": "sites\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.read", - "rows.read" - ], + "scope": "sites.write", "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": [] } @@ -58433,38 +58226,38 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } ] - }, + } + }, + "\/sites\/{siteId}\/deployment": { "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", + "summary": "Update site's deployment", + "operationId": "sitesUpdateSiteDeployment", "tags": [ - "tablesDB" + "sites" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "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": "Transaction", + "description": "Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/site" } } } @@ -58472,28 +58265,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 847, + "method": "updateSiteDeployment", + "group": "sites", "cookies": false, "type": "", - "demo": "tablesdb\/update-transaction.md", + "demo": "sites\/update-site-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "sites.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": [] } @@ -58501,19 +58287,17 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } @@ -58524,58 +58308,58 @@ "schema": { "type": "object", "properties": { - "commit": { - "type": "boolean", - "description": "Commit transaction?", - "x-example": false - }, - "rollback": { - "type": "boolean", - "description": "Rollback transaction?", - "x-example": false + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "<DEPLOYMENT_ID>" } - } + }, + "required": [ + "deploymentId" + ] } } } } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", + } + }, + "\/sites\/{siteId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "sitesListDeployments", "tags": [ - "tablesDB" + "sites" ], - "description": "Delete a transaction 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", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deploymentList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 848, + "method": "listDeployments", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/delete-transaction.md", + "demo": "sites\/list-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "sites.read", "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": [] } @@ -58583,40 +58367,71 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_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.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { + }, "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", + "summary": "Create deployment", + "operationId": "sitesCreateDeployment", "tags": [ - "tablesDB" + "sites" ], - "description": "Create multiple operations in a single transaction.", + "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": "Transaction", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -58624,28 +58439,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", - "weight": 850, + "method": "createDeployment", + "group": "deployments", "cookies": false, - "type": "", - "demo": "tablesdb\/create-operations.md", + "type": "upload", + "demo": "sites\/create-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "sites.write", "platforms": [ "console", - "server", - "client", "server" ], - "packaging": false, + "packaging": true, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", "auth": { "Project": [] } @@ -58653,59 +58461,82 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } ], "requestBody": { "content": { - "application\/json": { + "multipart\/form-data": { "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" - } + "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.", + "default": false, + "x-example": false } - } + }, + "required": [ + "code" + ] } } } } } }, - "\/tablesdb\/usage": { - "get": { - "summary": "Get TablesDB usage stats", - "operationId": "tablesDBListUsage", + "\/sites\/{siteId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "sitesCreateDuplicateDeployment", "tags": [ - "tablesDB" + "sites" ], - "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 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": "UsageDatabases", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageDatabases" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -58713,98 +58544,79 @@ }, "deprecated": false, "x-appwrite": { - "method": "listUsage", - "group": null, - "weight": 782, + "method": "createDuplicateDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/list-usage.md", + "demo": "sites\/create-duplicate-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "sites.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": "#\/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": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "siteId", + "description": "Site 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": "<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" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "tablesDBGet", + "\/sites\/{siteId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "sitesCreateTemplateDeployment", "tags": [ - "tablesDB" + "sites" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "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": "Database", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -58812,23 +58624,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "tablesdb", - "weight": 777, + "method": "createTemplateDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/get.md", + "demo": "sites\/create-template-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", "auth": { "Project": [] } @@ -58841,31 +58651,88 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } - ] - }, - "put": { - "summary": "Update database", - "operationId": "tablesDBUpdate", + ], + "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" + }, + "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.", + "default": false, + "x-example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "sitesCreateVcsDeployment", "tags": [ - "tablesDB" + "sites" ], - "description": "Update a database by its unique ID.", + "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": "Database", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -58873,23 +58740,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "tablesdb", - "weight": 778, + "method": "createVcsDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/update.md", + "demo": "sites\/create-vcs-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", "auth": { "Project": [] } @@ -58902,12 +58767,12 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } @@ -58918,53 +58783,76 @@ "schema": { "type": "object", "properties": { - "name": { + "type": { "type": "string", - "description": "Database name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Type of reference passed. Allowed values are: branch, commit", + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": "VCSReferenceType" }, - "enabled": { + "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": "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": "Automatically activate the deployment when it is finished building.", + "default": false, "x-example": false } - } + }, + "required": [ + "type", + "reference" + ] } } } } - }, - "delete": { - "summary": "Delete database", - "operationId": "tablesDBDelete", + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "sitesGetDeployment", "tags": [ - "tablesDB" + "sites" ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "description": "Get a site deployment by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "tablesdb", - "weight": 779, + "method": "getDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/delete.md", + "demo": "sites\/get-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", "auth": { "Project": [] } @@ -58977,60 +58865,56 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" }, "in": "path" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables": { - "get": { - "summary": "List tables", - "operationId": "tablesDBListTables", + }, + "delete": { + "summary": "Delete deployment", + "operationId": "sitesDeleteDeployment", "tags": [ - "tablesDB" + "sites" ], - "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", + "description": "Delete a site deployment by its unique ID.", "responses": { - "200": { - "description": "Tables List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/tableList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listTables", - "group": "tables", - "weight": 787, + "method": "deleteDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/list-tables.md", + "demo": "sites\/delete-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", "auth": { "Project": [] } @@ -59043,93 +58927,59 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_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 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": "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 table", - "operationId": "tablesDBCreateTable", + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "sitesGetDeploymentDownload", "tags": [ - "tablesDB" + "sites" ], - "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": "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": "Table", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/table" - } - } - } + "200": { + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "createTable", - "group": "tables", - "weight": 783, + "method": "getDeploymentDownload", + "group": "deployments", "cookies": false, - "type": "", - "demo": "tablesdb\/create-table.md", + "type": "location", + "demo": "sites\/get-deployment-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "sites.read", "platforms": [ "console", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", "auth": { "Project": [] } @@ -59137,98 +58987,65 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "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", + "default": "source" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "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": "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 - }, - "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 - }, - "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" - ] - } - } - } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}": { - "get": { - "summary": "Get table", - "operationId": "tablesDBGetTable", + "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "sitesUpdateDeploymentStatus", "tags": [ - "tablesDB" + "sites" ], - "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", + "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": "Table", + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/table" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -59236,26 +59053,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTable", - "group": "tables", - "weight": 784, + "method": "updateDeploymentStatus", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/get-table.md", + "demo": "sites\/update-deployment-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", "auth": { "Project": [] } @@ -59268,41 +59080,43 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<SITE_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "deploymentId", + "description": "Deployment ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<DEPLOYMENT_ID>" }, "in": "path" } ] - }, - "put": { - "summary": "Update table", - "operationId": "tablesDBUpdateTable", + } + }, + "\/sites\/{siteId}\/logs": { + "get": { + "summary": "List logs", + "operationId": "sitesListLogs", "tags": [ - "tablesDB" + "sites" ], - "description": "Update a table 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": "Table", + "description": "Executions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/table" + "$ref": "#\/components\/schemas\/executionList" } } } @@ -59310,26 +59124,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTable", - "group": "tables", - "weight": 785, + "method": "listLogs", + "group": "logs", "cookies": false, "type": "", - "demo": "tablesdb\/update-table.md", + "demo": "sites\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "log.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", "auth": { "Project": [] } @@ -59342,74 +59151,119 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<SITE_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: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, "schema": { - "type": "string", - "x-example": "<TABLE_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" } + ] + } + }, + "\/sites\/{siteId}\/logs\/{logId}": { + "get": { + "summary": "Get log", + "operationId": "sitesGetLog", + "tags": [ + "sites" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "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).", - "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 - }, - "purge": { - "type": "boolean", - "description": "When true, purge all cached list responses for this table as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", - "x-example": false - } + "description": "Get a site request log by its unique ID.", + "responses": { + "200": { + "description": "Execution", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/execution" } } } } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "getLog", + "group": "logs", + "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, + "schema": { + "type": "string", + "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 table", - "operationId": "tablesDBDeleteTable", + "summary": "Delete log", + "operationId": "sitesDeleteLog", "tags": [ - "tablesDB" + "sites" ], - "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Delete a site log by its unique ID.", "responses": { "204": { "description": "No content" @@ -59417,26 +59271,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteTable", - "group": "tables", - "weight": 786, + "method": "deleteLog", + "group": "logs", "cookies": false, "type": "", - "demo": "tablesdb\/delete-table.md", + "demo": "sites\/delete-log.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "log.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", "auth": { "Project": [] } @@ -59449,43 +59298,43 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<SITE_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "logId", + "description": "Log ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<LOG_ID>" }, "in": "path" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { + "\/sites\/{siteId}\/usage": { "get": { - "summary": "List columns", - "operationId": "tablesDBListColumns", + "summary": "Get site usage", + "operationId": "sitesGetUsage", "tags": [ - "tablesDB" + "sites" ], - "description": "List columns in the table.", + "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": "Columns List", + "description": "UsageSite", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnList" + "$ref": "#\/components\/schemas\/usageSite" } } } @@ -59493,62 +59342,126 @@ }, "deprecated": false, "x-appwrite": { - "method": "listColumns", - "group": "columns", - "weight": 792, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "tablesdb\/list-columns.md", + "demo": "sites\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read", - "columns.read", - "attributes.read" - ], + "scope": "sites.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<SITE_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table 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" + } + ] + } + }, + "\/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" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listVariables", + "group": "variables", + "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, "schema": { "type": "string", - "x-example": "<TABLE_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 columns: key, type, size, required, array, status, 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: key, resourceType, resourceId, secret", "required": false, "schema": { "type": "array", @@ -59571,23 +59484,21 @@ "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint": { + }, "post": { - "summary": "Create bigint column", - "operationId": "tablesDBCreateBigIntColumn", + "summary": "Create variable", + "operationId": "sitesCreateVariable", "tags": [ - "tablesDB" + "sites" ], - "description": "Create a bigint column. Optionally, minimum and maximum values can be provided.\n", + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", "responses": { - "202": { - "description": "ColumnBigInt", + "201": { + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnBigint" + "$ref": "#\/components\/schemas\/variable" } } } @@ -59595,28 +59506,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBigIntColumn", - "group": "columns", - "weight": 805, + "method": "createVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "tablesdb\/create-big-int-column.md", + "demo": "sites\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-bigint-column.md", "auth": { "Project": [] } @@ -59629,22 +59533,12 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } @@ -59655,46 +59549,32 @@ "schema": { "type": "object", "properties": { - "key": { + "variableId": { "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 + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<VARIABLE_ID>" }, - "max": { - "type": "integer", - "description": "Maximum value", - "x-example": null, - "format": "int64", - "x-nullable": true + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" }, - "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "format": "int64", - "x-nullable": true + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>" }, - "array": { + "secret": { "type": "boolean", - "description": "Is column an array?", + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "default": true, "x-example": false } }, "required": [ + "variableId", "key", - "required" + "value" ] } } @@ -59702,21 +59582,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { - "patch": { - "summary": "Update bigint column", - "operationId": "tablesDBUpdateBigIntColumn", + "\/sites\/{siteId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "sitesGetVariable", "tags": [ - "tablesDB" + "sites" ], - "description": "Update a bigint column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a variable by its unique ID.", "responses": { "200": { - "description": "ColumnBigInt", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnBigint" + "$ref": "#\/components\/schemas\/variable" } } } @@ -59724,28 +59604,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBigIntColumn", - "group": "columns", - "weight": 806, + "method": "getVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "tablesdb\/update-big-int-column.md", + "demo": "sites\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-bigint-column.md", "auth": { "Project": [] } @@ -59758,128 +59631,154 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<SITE_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<VARIABLE_ID>" }, "in": "path" - }, + } + ] + }, + "put": { + "summary": "Update variable", + "operationId": "sitesUpdateVariable", + "tags": [ + "sites" + ], + "description": "Update variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateVariable", + "group": "variables", + "cookies": false, + "type": "", + "demo": "sites\/update-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": "key", - "description": "Column Key.", + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", "required": true, "schema": { - "type": "string" + "type": "string", + "x-example": "<SITE_ID>" }, "in": "path" - } - ], - "requestBody": { - "content": { + }, + { + "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": { - "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", + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>", "x-nullable": true }, - "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "format": "int64", + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>", "x-nullable": true }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, + "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": [ - "required", - "default" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { - "post": { - "summary": "Create boolean column", - "operationId": "tablesDBCreateBooleanColumn", + }, + "delete": { + "summary": "Delete variable", + "operationId": "sitesDeleteVariable", "tags": [ - "tablesDB" + "sites" ], - "description": "Create a boolean column.\n", + "description": "Delete a variable by its unique ID.", "responses": { - "202": { - "description": "ColumnBoolean", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createBooleanColumn", - "group": "columns", - "weight": 793, + "method": "deleteVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "tablesdb\/create-boolean-column.md", + "demo": "sites\/delete-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.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": [] } @@ -59892,79 +59791,43 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<SITE_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": "variableId", + "description": "Variable unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<VARIABLE_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" - ] - } - } - } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { - "patch": { - "summary": "Update boolean column", - "operationId": "tablesDBUpdateBooleanColumn", + "\/storage\/buckets": { + "get": { + "summary": "List buckets", + "operationId": "storageListBuckets", "tags": [ - "tablesDB" + "storage" ], - "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", + "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", "responses": { "200": { - "description": "ColumnBoolean", + "description": "Buckets List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" + "$ref": "#\/components\/schemas\/bucketList" } } } @@ -59972,28 +59835,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBooleanColumn", - "group": "columns", - "weight": 794, + "method": "listBuckets", + "group": "buckets", "cookies": false, "type": "", - "demo": "tablesdb\/update-boolean-column.md", + "demo": "storage\/list-buckets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "buckets.read", "platforms": [ "console", "server" ], "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\/storage\/list-buckets.md", "auth": { "Project": [] } @@ -60006,84 +59863,56 @@ ], "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: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "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": "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" - ] - } - } + "in": "query" } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + ] + }, "post": { - "summary": "Create datetime column", - "operationId": "tablesDBCreateDatetimeColumn", + "summary": "Create bucket", + "operationId": "storageCreateBucket", "tags": [ - "tablesDB" + "storage" ], - "description": "Create a date time column according to the ISO 8601 standard.", + "description": "Create a new storage bucket.", "responses": { - "202": { - "description": "ColumnDatetime", + "201": { + "description": "Bucket", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" + "$ref": "#\/components\/schemas\/bucket" } } } @@ -60091,28 +59920,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDatetimeColumn", - "group": "columns", - "weight": 795, + "method": "createBucket", + "group": "buckets", "cookies": false, "type": "", - "demo": "tablesdb\/create-datetime-column.md", + "demo": "storage\/create-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "buckets.write", "platforms": [ "console", "server" ], "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\/storage\/create-bucket.md", "auth": { "Project": [] } @@ -60123,60 +59946,93 @@ "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": { - "key": { + "bucketId": { "type": "string", - "description": "Column Key.", - "x-example": null + "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>" }, - "required": { + "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": "Is column required?", + "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 }, - "default": { + "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 0B.", + "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": "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "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": "Compression" }, - "array": { + "encryption": { "type": "boolean", - "description": "Is column an array?", + "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": [ - "key", - "required" + "bucketId", + "name" ] } } @@ -60184,21 +60040,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { - "patch": { - "summary": "Update dateTime column", - "operationId": "tablesDBUpdateDatetimeColumn", + "\/storage\/buckets\/{bucketId}": { + "get": { + "summary": "Get bucket", + "operationId": "storageGetBucket", "tags": [ - "tablesDB" + "storage" ], - "description": "Update a date time column. Changing the `default` value will not update already existing rows.", + "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", "responses": { "200": { - "description": "ColumnDatetime", + "description": "Bucket", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" + "$ref": "#\/components\/schemas\/bucket" } } } @@ -60206,28 +60062,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDatetimeColumn", - "group": "columns", - "weight": 796, + "method": "getBucket", + "group": "buckets", "cookies": false, "type": "", - "demo": "tablesdb\/update-datetime-column.md", + "demo": "storage\/get-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "buckets.read", "platforms": [ "console", "server" ], "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\/storage\/get-bucket.md", "auth": { "Project": [] } @@ -60240,85 +60090,31 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<BUCKET_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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { - "post": { - "summary": "Create email column", - "operationId": "tablesDBCreateEmailColumn", + ] + }, + "put": { + "summary": "Update bucket", + "operationId": "storageUpdateBucket", "tags": [ - "tablesDB" + "storage" ], - "description": "Create an email column.\n", + "description": "Update a storage bucket by its unique ID.", "responses": { - "202": { - "description": "ColumnEmail", + "200": { + "description": "Bucket", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEmail" + "$ref": "#\/components\/schemas\/bucket" } } } @@ -60326,28 +60122,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEmailColumn", - "group": "columns", - "weight": 797, + "method": "updateBucket", + "group": "buckets", "cookies": false, "type": "", - "demo": "tablesdb\/create-email-column.md", + "demo": "storage\/update-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "buckets.write", "platforms": [ "console", "server" ], "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\/storage\/update-bucket.md", "auth": { "Project": [] } @@ -60360,22 +60150,12 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "bucketId", + "description": "Bucket unique 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>" + "x-example": "<BUCKET_ID>" }, "in": "path" } @@ -60386,54 +60166,156 @@ "schema": { "type": "object", "properties": { - "key": { + "name": { "type": "string", - "description": "Column Key.", - "x-example": null + "description": "Bucket name", + "x-example": "<NAME>" }, - "required": { + "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": "Is column required?", + "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 }, - "default": { + "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 0B.", + "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": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "email@example.com", - "format": "email", - "x-nullable": true + "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": "Compression" }, - "array": { + "encryption": { "type": "boolean", - "description": "Is column an array?", + "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": [ - "key", - "required" + "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", + "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, + "schema": { + "type": "string", + "x-example": "<BUCKET_ID>" + }, + "in": "path" + } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { - "patch": { - "summary": "Update email column", - "operationId": "tablesDBUpdateEmailColumn", + "\/storage\/buckets\/{bucketId}\/files": { + "get": { + "summary": "List files", + "operationId": "storageListFiles", "tags": [ - "tablesDB" + "storage" ], - "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a list of all the user files. You can use the query params to filter your results.", "responses": { "200": { - "description": "ColumnEmail", + "description": "Files List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEmail" + "$ref": "#\/components\/schemas\/fileList" } } } @@ -60441,28 +60323,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmailColumn", - "group": "columns", - "weight": 798, + "method": "listFiles", + "group": "files", "cookies": false, "type": "", - "demo": "tablesdb\/update-email-column.md", + "demo": "storage\/list-files.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "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\/storage\/list-files.md", "auth": { "Project": [] } @@ -60470,90 +60348,73 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "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.", - "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, 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": "<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": "email@example.com", - "format": "email", - "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\/enum": { + ] + }, "post": { - "summary": "Create enum column", - "operationId": "tablesDBCreateEnumColumn", + "summary": "Create file", + "operationId": "storageCreateFile", "tags": [ - "tablesDB" + "storage" ], - "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", + "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": "ColumnEnum", + "201": { + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEnum" + "$ref": "#\/components\/schemas\/file" } } } @@ -60561,28 +60422,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEnumColumn", - "group": "columns", - "weight": 799, + "method": "createFile", + "group": "files", "cookies": false, - "type": "", - "demo": "tablesdb\/create-enum-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.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", "server" ], "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\/storage\/create-file.md", "auth": { "Project": [] } @@ -60590,71 +60447,54 @@ "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": "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": "<TABLE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" } ], "requestBody": { "content": { - "application\/json": { + "multipart\/form-data": { "schema": { "type": "object", "properties": { - "key": { + "fileId": { "type": "string", - "description": "Column Key.", - "x-example": null + "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 }, - "elements": { - "type": "array", - "description": "Array of enum values.", + "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" - } - }, - "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" + "fileId", + "file" ] } } @@ -60662,21 +60502,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { - "patch": { - "summary": "Update enum column", - "operationId": "tablesDBUpdateEnumColumn", + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", "tags": [ - "tablesDB" + "storage" ], - "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", "responses": { "200": { - "description": "ColumnEnum", + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEnum" + "$ref": "#\/components\/schemas\/file" } } } @@ -60684,28 +60524,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEnumColumn", - "group": "columns", - "weight": 800, + "method": "getFile", + "group": "files", "cookies": false, "type": "", - "demo": "tablesdb\/update-enum-column.md", + "demo": "storage\/get-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.read", "platforms": [ "console", + "client", + "server", "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\/storage\/get-file.md", "auth": { "Project": [] } @@ -60713,98 +60549,48 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "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.", + "name": "fileId", + "description": "File ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<FILE_ID>" }, "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 float column", - "operationId": "tablesDBCreateFloatColumn", + ] + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", "tags": [ - "tablesDB" + "storage" ], - "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", "responses": { - "202": { - "description": "ColumnFloat", + "200": { + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnFloat" + "$ref": "#\/components\/schemas\/file" } } } @@ -60812,28 +60598,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFloatColumn", - "group": "columns", - "weight": 801, + "method": "updateFile", + "group": "files", "cookies": false, "type": "", - "demo": "tablesdb\/create-float-column.md", + "demo": "storage\/update-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.write", "platforms": [ "console", + "client", + "server", "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\/storage\/update-file.md", "auth": { "Project": [] } @@ -60841,27 +60623,29 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "fileId", + "description": "File ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<FILE_ID>" }, "in": "path" } @@ -60872,97 +60656,58 @@ "schema": { "type": "object", "properties": { - "key": { + "name": { "type": "string", - "description": "Column Key.", - "x-example": null + "description": "File name.", + "x-example": "<NAME>" }, - "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", + "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 - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { - "patch": { - "summary": "Update float column", - "operationId": "tablesDBUpdateFloatColumn", + }, + "delete": { + "summary": "Delete file", + "operationId": "storageDeleteFile", "tags": [ - "tablesDB" + "storage" ], - "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { - "200": { - "description": "ColumnFloat", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnFloat" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateFloatColumn", - "group": "columns", - "weight": 802, + "method": "deleteFile", + "group": "files", "cookies": false, "type": "", - "demo": "tablesdb\/update-float-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.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", "server" ], "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\/storage\/delete-file.md", "auth": { "Project": [] } @@ -60970,133 +60715,68 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "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.", + "name": "fileId", + "description": "File ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<FILE_ID>" }, "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 integer column", - "operationId": "tablesDBCreateIntegerColumn", + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { + "get": { + "summary": "Get file for download", + "operationId": "storageGetFileDownload", "tags": [ - "tablesDB" + "storage" ], - "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "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": "ColumnInteger", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnInteger" - } - } - } + "200": { + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "createIntegerColumn", - "group": "columns", - "weight": 803, + "method": "getFileDownload", + "group": "files", "cookies": false, - "type": "", - "demo": "tablesdb\/create-integer-column.md", + "type": "location", + "demo": "storage\/get-file-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "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\/storage\/get-file-download.md", "auth": { "Project": [] } @@ -61104,128 +60784,79 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database 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": "<DATABASE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "fileId", + "description": "File ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_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" } - ], - "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\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { - "patch": { - "summary": "Update integer column", - "operationId": "tablesDBUpdateIntegerColumn", + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", "tags": [ - "tablesDB" + "storage" ], - "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", + "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": "ColumnInteger", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnInteger" - } - } - } + "description": "Image" } }, "deprecated": false, "x-appwrite": { - "method": "updateIntegerColumn", - "group": "columns", - "weight": 804, + "method": "getFilePreview", + "group": "files", "cookies": false, - "type": "", - "demo": "tablesdb\/update-integer-column.md", + "type": "location", + "demo": "storage\/get-file-preview.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "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\/storage\/get-file-preview.md", "auth": { "Project": [] } @@ -61233,247 +60864,226 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "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.", + "name": "fileId", + "description": "File ID", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<FILE_ID>" }, "in": "path" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, "schema": { - "type": "string" + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 }, - "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", - "tags": [ - "tablesDB" - ], - "description": "Create IP address column.\n", - "responses": { - "202": { - "description": "ColumnIP", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIp" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createIpColumn", - "group": "columns", - "weight": 807, - "cookies": false, - "type": "", - "demo": "tablesdb\/create-ip-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-ip-column.md", - "auth": { - "Project": [] - } - }, - "security": [ + "in": "query" + }, { - "Project": [], - "Key": [] - } - ], - "parameters": [ + "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": "databaseId", - "description": "Database ID.", - "required": true, + "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": "<DATABASE_ID>" + "x-example": "center", + "enum": [ + "center", + "top-left", + "top", + "top-right", + "left", + "right", + "bottom-left", + "bottom", + "bottom-right" + ], + "x-enum-name": "ImageGravity", + "default": "center" }, - "in": "path" + "in": "query" }, { - "name": "tableId", - "description": "Table ID.", - "required": true, + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, "schema": { - "type": "string", - "x-example": "<TABLE_ID>" + "type": "integer", + "format": "int32", + "x-example": -1, + "default": -1 }, - "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" - ] - } - } + "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" + }, + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TOKEN>", + "default": "" + }, + "in": "query" } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { - "patch": { - "summary": "Update IP address column", - "operationId": "tablesDBUpdateIpColumn", + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { + "get": { + "summary": "Get file for view", + "operationId": "storageGetFileView", "tags": [ - "tablesDB" + "storage" ], - "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", + "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": "ColumnIP", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIp" - } - } - } + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "updateIpColumn", - "group": "columns", - "weight": 808, + "method": "getFileView", + "group": "files", "cookies": false, - "type": "", - "demo": "tablesdb\/update-ip-column.md", + "type": "location", + "demo": "storage\/get-file-view.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "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\/storage\/get-file-view.md", "auth": { "Project": [] } @@ -61481,89 +61091,61 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "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.", + "name": "fileId", + "description": "File ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<FILE_ID>" }, "in": "path" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "name": "token", + "description": "File token for accessing this file.", + "required": false, "schema": { - "type": "string" + "type": "string", + "x-example": "<TOKEN>", + "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", + "\/storage\/usage": { + "get": { + "summary": "Get storage usage stats", + "operationId": "storageGetUsage", "tags": [ - "tablesDB" + "storage" ], - "description": "Create a geometric line column.", + "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": { - "202": { - "description": "ColumnLine", + "200": { + "description": "StorageUsage", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLine" + "$ref": "#\/components\/schemas\/usageStorage" } } } @@ -61571,115 +61153,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLineColumn", - "group": "columns", - "weight": 809, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "tablesdb\/create-line-column.md", + "demo": "storage\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.read", "platforms": [ - "console", - "server" + "console" ], "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\/storage\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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, + "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": "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" - ] - } - } + "in": "query" } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { - "patch": { - "summary": "Update line column", - "operationId": "tablesDBUpdateLineColumn", + "\/storage\/{bucketId}\/usage": { + "get": { + "summary": "Get bucket usage stats", + "operationId": "storageGetBucketUsage", "tags": [ - "tablesDB" + "storage" ], - "description": "Update a line column. Changing the `default` value will not update already existing rows.", + "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": "ColumnLine", + "description": "UsageBuckets", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLine" + "$ref": "#\/components\/schemas\/usageBuckets" } } } @@ -61687,124 +61225,81 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLineColumn", - "group": "columns", - "weight": 810, + "method": "getBucketUsage", + "group": null, "cookies": false, "type": "", - "demo": "tablesdb\/update-line-column.md", + "demo": "storage\/get-bucket-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.read", "platforms": [ - "console", - "server" + "console" ], "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\/storage\/get-bucket-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "bucketId", + "description": "Bucket ID.", "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\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "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" }, - "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" } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { - "post": { - "summary": "Create longtext column", - "operationId": "tablesDBCreateLongtextColumn", + "\/tablesdb": { + "get": { + "summary": "List databases", + "operationId": "tablesDBList", "tags": [ "tablesDB" ], - "description": "Create a longtext column.\n", + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", "responses": { - "202": { - "description": "ColumnLongtext", + "200": { + "description": "Databases List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" + "$ref": "#\/components\/schemas\/databaseList" } } } @@ -61812,28 +61307,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLongtextColumn", - "group": "columns", - "weight": 827, + "method": "list", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/create-longtext-column.md", + "demo": "tablesdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "databases.read", "platforms": [ "console", "server" ], "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.md", "auth": { "Project": [] } @@ -61846,25 +61335,88 @@ ], "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 columns: name", + "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": "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 database", + "operationId": "tablesDBCreate", + "tags": [ + "tablesDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "create", + "group": "tablesdb", + "cookies": false, + "type": "", + "demo": "tablesdb\/create.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\/create.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } ], "requestBody": { "content": { @@ -61872,36 +61424,26 @@ "schema": { "type": "object", "properties": { - "key": { + "databaseId": { "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "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>" }, - "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 + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "encrypt": { + "enabled": { "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.", + "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": [ - "key", - "required" + "databaseId", + "name" ] } } @@ -61909,21 +61451,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { - "patch": { - "summary": "Update longtext column", - "operationId": "tablesDBUpdateLongtextColumn", + "\/tablesdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "tablesDBListTransactions", "tags": [ "tablesDB" ], - "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", + "description": "List transactions across all databases.", "responses": { "200": { - "description": "ColumnLongtext", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" + "$ref": "#\/components\/schemas\/transactionList" } } } @@ -61931,28 +61473,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLongtextColumn", - "group": "columns", - "weight": 828, + "method": "listTransactions", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/update-longtext-column.md", + "demo": "tablesdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "documents.read", + "rows.read" ], "platforms": [ "console", + "server", + "client", "server" ], "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\/list-transactions.md", "auth": { "Project": [] } @@ -61960,89 +61501,41 @@ "security": [ { "Project": [], - "Key": [] + "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).", - "required": true, - "schema": { - "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).", + "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 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\/mediumtext": { + ] + }, "post": { - "summary": "Create mediumtext column", - "operationId": "tablesDBCreateMediumtextColumn", + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", "tags": [ "tablesDB" ], - "description": "Create a mediumtext column.\n", + "description": "Create a new transaction.", "responses": { - "202": { - "description": "ColumnMediumtext", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnMediumtext" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -62050,28 +61543,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMediumtextColumn", - "group": "columns", - "weight": 825, + "method": "createTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/create-mediumtext-column.md", + "demo": "tablesdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "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-mediumtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", "auth": { "Project": [] } @@ -62079,29 +61571,9 @@ "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" + "Key": [], + "Session": [], + "JWT": [] } ], "requestBody": { @@ -62110,58 +61582,35 @@ "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 + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" } - }, - "required": [ - "key", - "required" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext column", - "operationId": "tablesDBUpdateMediumtextColumn", + "\/tablesdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", "tags": [ "tablesDB" ], - "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a transaction by its unique ID.", "responses": { "200": { - "description": "ColumnMediumtext", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnMediumtext" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -62169,28 +61618,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMediumtextColumn", - "group": "columns", - "weight": 826, + "method": "getTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/update-mediumtext-column.md", + "demo": "tablesdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "documents.read", + "rows.read" ], "platforms": [ "console", + "server", + "client", "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-transaction.md", "auth": { "Project": [] } @@ -62198,89 +61646,38 @@ "security": [ { "Project": [], - "Key": [] + "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": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<TRANSACTION_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 - }, - "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", + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", "tags": [ "tablesDB" ], - "description": "Create a geometric point column.", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { - "202": { - "description": "ColumnPoint", + "200": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnPoint" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -62288,28 +61685,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPointColumn", - "group": "columns", - "weight": 811, + "method": "updateTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/create-point-column.md", + "demo": "tablesdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "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-point-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", "auth": { "Project": [] } @@ -62317,27 +61713,19 @@ "security": [ { "Project": [], - "Key": [] + "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": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } @@ -62348,84 +61736,59 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { + "commit": { "type": "boolean", - "description": "Is column required?", + "description": "Commit transaction?", + "default": false, "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 + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { - "patch": { - "summary": "Update point column", - "operationId": "tablesDBUpdatePointColumn", + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", "tags": [ "tablesDB" ], - "description": "Update a point column. Changing the `default` value will not update already existing rows.", + "description": "Delete a transaction by its unique ID.", "responses": { - "200": { - "description": "ColumnPoint", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnPoint" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updatePointColumn", - "group": "columns", - "weight": 812, + "method": "deleteTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/update-point-column.md", + "demo": "tablesdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "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-point-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", "auth": { "Project": [] } @@ -62433,95 +61796,40 @@ "security": [ { "Project": [], - "Key": [] + "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": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<TRANSACTION_ID>" }, "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, 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": { + "\/tablesdb\/transactions\/{transactionId}\/operations": { "post": { - "summary": "Create polygon column", - "operationId": "tablesDBCreatePolygonColumn", + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", "tags": [ "tablesDB" ], - "description": "Create a geometric polygon column.", + "description": "Create multiple operations in a single transaction.", "responses": { - "202": { - "description": "ColumnPolygon", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnPolygon" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -62529,28 +61837,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPolygonColumn", - "group": "columns", - "weight": 813, + "method": "createOperations", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/create-polygon-column.md", + "demo": "tablesdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "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-polygon-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", "auth": { "Project": [] } @@ -62558,27 +61865,19 @@ "security": [ { "Project": [], - "Key": [] + "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": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } @@ -62589,55 +61888,37 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { + "operations": { "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 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": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true + "type": "object" + } } - }, - "required": [ - "key", - "required" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { - "patch": { - "summary": "Update polygon column", - "operationId": "tablesDBUpdatePolygonColumn", + "\/tablesdb\/usage": { + "get": { + "summary": "Get TablesDB usage stats", + "operationId": "tablesDBListUsage", "tags": [ "tablesDB" ], - "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", + "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": { "200": { - "description": "ColumnPolygon", + "description": "UsageDatabases", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnPolygon" + "$ref": "#\/components\/schemas\/usageDatabases" } } } @@ -62645,124 +61926,97 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePolygonColumn", - "group": "columns", - "weight": 814, + "method": "listUsage", + "group": null, "cookies": false, "type": "", - "demo": "tablesdb\/update-polygon-column.md", + "demo": "tablesdb\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.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-polygon-column.md", + "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": "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, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "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" }, - "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" - ] - } - } + "in": "query" } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { - "post": { - "summary": "Create relationship column", - "operationId": "tablesDBCreateRelationshipColumn", + "\/tablesdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "tablesDBGet", "tags": [ "tablesDB" ], - "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { - "202": { - "description": "ColumnRelationship", + "200": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnRelationship" + "$ref": "#\/components\/schemas\/database" } } } @@ -62770,28 +62024,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRelationshipColumn", - "group": "columns", - "weight": 815, + "method": "get", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/create-relationship-column.md", + "demo": "tablesdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "databases.read", "platforms": [ "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\/get.md", "auth": { "Project": [] } @@ -62812,130 +62060,46 @@ "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": { - "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\/string": { - "post": { - "summary": "Create string column", - "operationId": "tablesDBCreateStringColumn", + ] + }, + "put": { + "summary": "Update database", + "operationId": "tablesDBUpdate", "tags": [ "tablesDB" ], - "description": "Create a string column.\n", + "description": "Update a database by its unique ID.", "responses": { - "202": { - "description": "ColumnString", + "200": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnString" + "$ref": "#\/components\/schemas\/database" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createStringColumn", - "group": "columns", - "weight": 817, + "method": "update", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/create-string-column.md", + "demo": "tablesdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "databases.write", "platforms": [ "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\/update.md", "auth": { "Project": [] } @@ -62956,16 +62120,6 @@ "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": { @@ -62974,98 +62128,53 @@ "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" - }, - "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 + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "encrypt": { + "enabled": { "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.", + "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": [ - "key", - "size", - "required" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { - "patch": { - "summary": "Update string column", - "operationId": "tablesDBUpdateStringColumn", + }, + "delete": { + "summary": "Delete database", + "operationId": "tablesDBDelete", "tags": [ "tablesDB" ], - "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "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": 818, + "method": "delete", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/update-string-column.md", + "demo": "tablesdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "databases.write", "platforms": [ "console", "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.md", "auth": { "Project": [] } @@ -63086,83 +62195,123 @@ "x-example": "<DATABASE_ID>" }, "in": "path" - }, + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables": { + "get": { + "summary": "List tables", + "operationId": "tablesDBListTables", + "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.", + "responses": { + "200": { + "description": "Tables List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/tableList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTables", + "group": "tables", + "cookies": false, + "type": "", + "demo": "tablesdb\/list-tables.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-tables.md", + "auth": { + "Project": [] + } + }, + "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).", + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<DATABASE_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. You may filter on the following columns: name, enabled, rowSecurity", + "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 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" - ] - } - } + "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" } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { + ] + }, "post": { - "summary": "Create text column", - "operationId": "tablesDBCreateTextColumn", + "summary": "Create table", + "operationId": "tablesDBCreateTable", "tags": [ "tablesDB" ], - "description": "Create a text column.\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": { - "202": { - "description": "ColumnText", + "201": { + "description": "Table", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnText" + "$ref": "#\/components\/schemas\/table" } } } @@ -63170,20 +62319,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTextColumn", - "group": "columns", - "weight": 823, + "method": "createTable", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/create-text-column.md", + "demo": "tablesdb\/create-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "collections.write" ], "platforms": [ "console", @@ -63191,7 +62337,7 @@ ], "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\/create-table.md", "auth": { "Project": [] } @@ -63212,16 +62358,6 @@ "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": { @@ -63230,36 +62366,59 @@ "schema": { "type": "object", "properties": { - "key": { + "tableId": { "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "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>" }, - "default": { + "name": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", + "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 }, - "array": { + "rowSecurity": { "type": "boolean", - "description": "Is column an array?", + "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 }, - "encrypt": { + "enabled": { "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.", + "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": [ - "key", - "required" + "tableId", + "name" ] } } @@ -63267,21 +62426,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { - "patch": { - "summary": "Update text column", - "operationId": "tablesDBUpdateTextColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}": { + "get": { + "summary": "Get table", + "operationId": "tablesDBGetTable", "tags": [ "tablesDB" ], - "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", "responses": { "200": { - "description": "ColumnText", + "description": "Table", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnText" + "$ref": "#\/components\/schemas\/table" } } } @@ -63289,20 +62448,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTextColumn", - "group": "columns", - "weight": 824, + "method": "getTable", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/update-text-column.md", + "demo": "tablesdb\/get-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "tables.read", + "collections.read" ], "platforms": [ "console", @@ -63310,7 +62466,7 @@ ], "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\/get-table.md", "auth": { "Project": [] } @@ -63334,73 +62490,30 @@ }, { "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": { - "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\/url": { - "post": { - "summary": "Create URL column", - "operationId": "tablesDBCreateUrlColumn", + ] + }, + "put": { + "summary": "Update table", + "operationId": "tablesDBUpdateTable", "tags": [ "tablesDB" ], - "description": "Create a URL column.\n", + "description": "Update a table by its unique ID.", "responses": { - "202": { - "description": "ColumnURL", + "200": { + "description": "Table", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnUrl" + "$ref": "#\/components\/schemas\/table" } } } @@ -63408,20 +62521,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "createUrlColumn", - "group": "columns", - "weight": 819, + "method": "updateTable", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/create-url-column.md", + "demo": "tablesdb\/update-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "collections.write" ], "platforms": [ "console", @@ -63429,7 +62539,7 @@ ], "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\/update-table.md", "auth": { "Project": [] } @@ -63468,75 +62578,69 @@ "schema": { "type": "object", "properties": { - "key": { + "name": { "type": "string", - "description": "Column Key.", - "x-example": null + "description": "Table name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "required": { + "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 + }, + "rowSecurity": { "type": "boolean", - "description": "Is column required?", + "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 }, - "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 + "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 }, - "array": { + "purge": { "type": "boolean", - "description": "Is column an array?", + "description": "When true, purge all cached list responses for this table as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "default": false, "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { - "patch": { - "summary": "Update URL column", - "operationId": "tablesDBUpdateUrlColumn", + }, + "delete": { + "summary": "Delete table", + "operationId": "tablesDBDeleteTable", "tags": [ "tablesDB" ], - "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", + "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { - "200": { - "description": "ColumnURL", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnUrl" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateUrlColumn", - "group": "columns", - "weight": 820, + "method": "deleteTable", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/update-url-column.md", + "demo": "tablesdb\/delete-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "collections.write" ], "platforms": [ "console", @@ -63544,7 +62648,7 @@ ], "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\/delete-table.md", "auth": { "Project": [] } @@ -63575,67 +62679,25 @@ "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": "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", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { + "get": { + "summary": "List columns", + "operationId": "tablesDBListColumns", "tags": [ "tablesDB" ], - "description": "Create a varchar column.\n", + "description": "List columns in the table.", "responses": { - "202": { - "description": "ColumnVarchar", + "200": { + "description": "Columns List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnVarchar" + "$ref": "#\/components\/schemas\/columnList" } } } @@ -63643,20 +62705,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVarcharColumn", + "method": "listColumns", "group": "columns", - "weight": 821, "cookies": false, "type": "", - "demo": "tablesdb\/create-varchar-column.md", + "demo": "tablesdb\/list-columns.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "tables.read", + "collections.read", + "columns.read", + "attributes.read" ], "platforms": [ "console", @@ -63664,7 +62725,7 @@ ], "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\/tablesdb\/list-columns.md", "auth": { "Project": [] } @@ -63688,15 +62749,116 @@ }, { "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": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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\/bigint": { + "post": { + "summary": "Create bigint column", + "operationId": "tablesDBCreateBigIntColumn", + "tags": [ + "tablesDB" + ], + "description": "Create a bigint column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnBigInt", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBigint" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createBigIntColumn", + "group": "columns", + "cookies": false, + "type": "", + "demo": "tablesdb\/create-big-int-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-bigint-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" + } + ], "requestBody": { "content": { "application\/json": { @@ -63708,37 +62870,41 @@ "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": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<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 - }, - "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" ] } @@ -63747,21 +62913,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { "patch": { - "summary": "Update varchar column", - "operationId": "tablesDBUpdateVarcharColumn", + "summary": "Update bigint column", + "operationId": "tablesDBUpdateBigIntColumn", "tags": [ "tablesDB" ], - "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a bigint column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnVarchar", + "description": "ColumnBigInt", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnVarchar" + "$ref": "#\/components\/schemas\/columnBigint" } } } @@ -63769,12 +62935,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVarcharColumn", + "method": "updateBigIntColumn", "group": "columns", - "weight": 822, "cookies": false, "type": "", - "demo": "tablesdb\/update-varchar-column.md", + "demo": "tablesdb\/update-big-int-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -63790,7 +62955,7 @@ ], "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\/tablesdb\/update-bigint-column.md", "auth": { "Project": [] } @@ -63814,7 +62979,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", @@ -63843,17 +63008,25 @@ "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>", + "min": { + "type": "integer", + "description": "Minimum value", + "x-example": null, + "format": "int64", "x-nullable": true }, - "size": { + "max": { "type": "integer", - "description": "Maximum size of the varchar column.", - "x-example": 1, - "format": "int32", + "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": { @@ -63873,103 +63046,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { - "get": { - "summary": "Get column", - "operationId": "tablesDBGetColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "post": { + "summary": "Create boolean column", + "operationId": "tablesDBCreateBooleanColumn", "tags": [ "tablesDB" ], - "description": "Get column by ID.", + "description": "Create a boolean column.\n", "responses": { - "200": { - "description": "ColumnBoolean, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnString", + "202": { + "description": "ColumnBoolean", "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" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "boolean": "#\/components\/schemas\/columnBoolean", - "integer": "#\/components\/schemas\/columnInteger", - "double": "#\/components\/schemas\/columnFloat", - "string": "#\/components\/schemas\/columnString", - "datetime": "#\/components\/schemas\/columnDatetime", - "relationship": "#\/components\/schemas\/columnRelationship" - }, - "x-propertyNames": [ - "type", - "format" - ], - "x-mapping": { - "#\/components\/schemas\/columnBoolean": { - "type": "boolean" - }, - "#\/components\/schemas\/columnInteger": { - "type": "integer" - }, - "#\/components\/schemas\/columnFloat": { - "type": "double" - }, - "#\/components\/schemas\/columnEmail": { - "type": "string", - "format": "email" - }, - "#\/components\/schemas\/columnEnum": { - "type": "string", - "format": "enum" - }, - "#\/components\/schemas\/columnUrl": { - "type": "string", - "format": "url" - }, - "#\/components\/schemas\/columnIp": { - "type": "string", - "format": "ip" - }, - "#\/components\/schemas\/columnDatetime": { - "type": "datetime" - }, - "#\/components\/schemas\/columnRelationship": { - "type": "relationship" - }, - "#\/components\/schemas\/columnString": { - "type": "string" - } - } - } + "$ref": "#\/components\/schemas\/columnBoolean" } } } @@ -63977,20 +63068,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "getColumn", + "method": "createBooleanColumn", "group": "columns", - "weight": 790, "cookies": false, "type": "", - "demo": "tablesdb\/get-column.md", + "demo": "tablesdb\/create-boolean-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read", - "columns.read", - "attributes.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -63998,7 +63088,7 @@ ], "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\/tablesdb\/create-boolean-column.md", "auth": { "Project": [] } @@ -64022,45 +63112,81 @@ }, { "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" } - ] - }, - "delete": { - "summary": "Delete column", - "operationId": "tablesDBDeleteColumn", + ], + "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?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "patch": { + "summary": "Update boolean column", + "operationId": "tablesDBUpdateBooleanColumn", "tags": [ "tablesDB" ], - "description": "Deletes a column.", + "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteColumn", + "method": "updateBooleanColumn", "group": "columns", - "weight": 791, "cookies": false, "type": "", - "demo": "tablesdb\/delete-column.md", + "demo": "tablesdb\/update-boolean-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -64076,7 +63202,7 @@ ], "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\/tablesdb\/update-boolean-column.md", "auth": { "Project": [] } @@ -64100,7 +63226,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", @@ -64117,24 +63243,56 @@ }, "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" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}\/relationship": { - "patch": { - "summary": "Update relationship column", - "operationId": "tablesDBUpdateRelationshipColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "post": { + "summary": "Create datetime column", + "operationId": "tablesDBCreateDatetimeColumn", "tags": [ "tablesDB" ], - "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "description": "Create a date time column according to the ISO 8601 standard.", "responses": { - "200": { - "description": "ColumnRelationship", + "202": { + "description": "ColumnDatetime", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnRelationship" + "$ref": "#\/components\/schemas\/columnDatetime" } } } @@ -64142,12 +63300,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRelationshipColumn", + "method": "createDatetimeColumn", "group": "columns", - "weight": 816, "cookies": false, "type": "", - "demo": "tablesdb\/update-relationship-column.md", + "demo": "tablesdb\/create-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -64163,7 +63320,7 @@ ], "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\/tablesdb\/create-datetime-column.md", "auth": { "Project": [] } @@ -64194,15 +63351,6 @@ "x-example": "<TABLE_ID>" }, "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" } ], "requestBody": { @@ -64211,47 +63359,55 @@ "schema": { "type": "object", "properties": { - "onDelete": { + "key": { "type": "string", - "description": "Constraints option", - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [], - "x-nullable": true + "description": "Column Key.", + "x-example": null }, - "newKey": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { "type": "string", - "description": "New Column Key.", - "x-example": null, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "tablesDBListIndexes", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "patch": { + "summary": "Update dateTime column", + "operationId": "tablesDBUpdateDatetimeColumn", "tags": [ "tablesDB" ], - "description": "List indexes on the table.", + "description": "Update a date time column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Column Indexes List", + "description": "ColumnDatetime", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIndexList" + "$ref": "#\/components\/schemas\/columnDatetime" } } } @@ -64259,19 +63415,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "listIndexes", - "group": "indexes", - "weight": 832, + "method": "updateDatetimeColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/list-indexes.md", + "demo": "tablesdb\/update-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read", - "indexes.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -64279,7 +63435,7 @@ ], "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\/tablesdb\/update-datetime-column.md", "auth": { "Project": [] } @@ -64303,7 +63459,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", @@ -64312,45 +63468,65 @@ "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, + "name": "key", + "description": "Column Key.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string" }, - "in": "query" + "in": "path" } - ] - }, - "post": { - "summary": "Create index", - "operationId": "tablesDBCreateIndex", - "tags": [ - "tablesDB" ], - "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`.", + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { + "post": { + "summary": "Create email column", + "operationId": "tablesDBCreateEmailColumn", + "tags": [ + "tablesDB" + ], + "description": "Create an email column.\n", "responses": { "202": { - "description": "Index", + "description": "ColumnEmail", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIndex" + "$ref": "#\/components\/schemas\/columnEmail" } } } @@ -64358,19 +63534,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "createIndex", - "group": "indexes", - "weight": 829, + "method": "createEmailColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-index.md", + "demo": "tablesdb\/create-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.write", "collections.write", - "indexes.write" + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -64378,7 +63554,7 @@ ], "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\/tablesdb\/create-email-column.md", "auth": { "Project": [] } @@ -64402,7 +63578,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", @@ -64419,57 +63595,31 @@ "properties": { "key": { "type": "string", - "description": "Index Key.", + "description": "Column Key.", "x-example": null }, - "type": { - "type": "string", - "description": "Index type.", - "x-example": "key", - "enum": [ - "key", - "fulltext", - "unique", - "spatial" - ], - "x-enum-name": "TablesDBIndexType", - "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" - } + "required": { + "type": "boolean", + "description": "Is column required?", + "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": [] - } + "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 }, - "lengths": { - "type": "array", - "description": "Length of index. Maximum of 100", - "x-example": null, - "items": { - "type": "integer" - } + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false } }, "required": [ "key", - "type", - "columns" + "required" ] } } @@ -64477,21 +63627,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { - "get": { - "summary": "Get index", - "operationId": "tablesDBGetIndex", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "patch": { + "summary": "Update email column", + "operationId": "tablesDBUpdateEmailColumn", "tags": [ "tablesDB" ], - "description": "Get index by ID.", + "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Index", + "description": "ColumnEmail", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIndex" + "$ref": "#\/components\/schemas\/columnEmail" } } } @@ -64499,19 +63649,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "getIndex", - "group": "indexes", - "weight": 830, + "method": "updateEmailColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/get-index.md", + "demo": "tablesdb\/update-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read", - "indexes.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -64519,7 +63669,7 @@ ], "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\/tablesdb\/update-email-column.md", "auth": { "Project": [] } @@ -64543,7 +63693,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", @@ -64553,42 +63703,84 @@ }, { "name": "key", - "description": "Index Key.", + "description": "Column Key.", "required": true, "schema": { "type": "string" }, "in": "path" } - ] - }, - "delete": { - "summary": "Delete index", - "operationId": "tablesDBDeleteIndex", + ], + "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" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "post": { + "summary": "Create enum column", + "operationId": "tablesDBCreateEnumColumn", "tags": [ "tablesDB" ], - "description": "Delete an index.", + "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", "responses": { - "204": { - "description": "No content" + "202": { + "description": "ColumnEnum", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEnum" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteIndex", - "group": "indexes", - "weight": 831, + "method": "createEnumColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/delete-index.md", + "demo": "tablesdb\/create-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.write", "collections.write", - "indexes.write" + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -64596,7 +63788,7 @@ ], "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\/tablesdb\/create-enum-column.md", "auth": { "Project": [] } @@ -64620,41 +63812,78 @@ }, { "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": "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 + }, + "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?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/logs": { - "get": { - "summary": "List table logs", - "operationId": "tablesDBListTableLogs", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "patch": { + "summary": "Update enum column", + "operationId": "tablesDBUpdateEnumColumn", "tags": [ "tablesDB" ], - "description": "Get the table activity logs list by its unique ID.", + "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Logs List", + "description": "ColumnEnum", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/columnEnum" } } } @@ -64662,32 +63891,35 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTableLogs", - "group": "tables", - "weight": 788, + "method": "updateEnumColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/list-table-logs.md", + "demo": "tablesdb\/update-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-enum-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -64712,36 +63944,73 @@ "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": "key", + "description": "Column Key.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "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}\/rows": { - "get": { - "summary": "List rows", - "operationId": "tablesDBListRows", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { + "post": { + "summary": "Create float column", + "operationId": "tablesDBCreateFloatColumn", "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.", + "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "200": { - "description": "Rows List", + "202": { + "description": "ColumnFloat", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/rowList" + "$ref": "#\/components\/schemas\/columnFloat" } } } @@ -64749,28 +64018,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRows", - "group": "rows", - "weight": 920, + "method": "createFloatColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/list-rows.md", + "demo": "tablesdb\/create-float-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.read", - "documents.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", - "client", - "server", "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\/tablesdb\/create-float-column.md", "auth": { "Project": [] } @@ -64778,9 +64046,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -64796,166 +64062,112 @@ }, { "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).", + "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.", - "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 caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, table, schema version (columns and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; row writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "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": 833, - "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 - }, - { - "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" + "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?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { + "patch": { + "summary": "Update float column", + "operationId": "tablesDBUpdateFloatColumn", + "tags": [ + "tablesDB" + ], + "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", + "responses": { + "200": { + "description": "ColumnFloat", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnFloat" } - ], - "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": "updateFloatColumn", + "group": "columns", + "cookies": false, + "type": "", + "demo": "tablesdb\/update-float-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], + "platforms": [ + "console", + "server" ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", "auth": { "Project": [] } @@ -64963,9 +64175,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -64981,13 +64191,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). Make sure to define columns before creating rows.", + "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": { @@ -64996,59 +64215,64 @@ "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": "<ROW_ID>" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "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}" + "min": { + "type": "number", + "description": "Minimum value", + "x-example": null, + "format": "float", + "x-nullable": true }, - "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" - }, + "max": { + "type": "number", + "description": "Maximum value", + "x-example": null, + "format": "float", "x-nullable": true }, - "rows": { - "type": "array", - "description": "Array of rows data as JSON objects.", + "default": { + "type": "number", + "description": "Default value. Cannot be set when required.", "x-example": null, - "items": { - "type": "object" - } + "format": "float", + "x-nullable": true }, - "transactionId": { + "newKey": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", + "description": "New Column Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } } } - }, - "put": { - "summary": "Upsert rows", - "operationId": "tablesDBUpsertRows", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "post": { + "summary": "Create integer column", + "operationId": "tablesDBCreateIntegerColumn", "tags": [ "tablesDB" ], - "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": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "201": { - "description": "Rows List", + "202": { + "description": "ColumnInteger", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/rowList" + "$ref": "#\/components\/schemas\/columnInteger" } } } @@ -65056,18 +64280,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsertRows", - "group": "rows", - "weight": 838, + "method": "createIntegerColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/upsert-rows.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/create-integer-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -65075,37 +64300,7 @@ ], "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 - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-integer-column.md", "auth": { "Project": [] } @@ -65144,43 +64339,69 @@ "schema": { "type": "object", "properties": { - "rows": { - "type": "array", - "description": "Array of row data as JSON objects. May contain partial rows.", + "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, - "items": { - "type": "object" - } + "format": "int64", + "x-nullable": true }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", + "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?", + "default": false, + "x-example": false } }, "required": [ - "rows" + "key", + "required" ] } } } } - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { "patch": { - "summary": "Update rows", - "operationId": "tablesDBUpdateRows", + "summary": "Update integer column", + "operationId": "tablesDBUpdateIntegerColumn", "tags": [ "tablesDB" ], - "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 an integer column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Rows List", + "description": "ColumnInteger", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/rowList" + "$ref": "#\/components\/schemas\/columnInteger" } } } @@ -65188,18 +64409,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRows", - "group": "rows", - "weight": 836, + "method": "updateIntegerColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-rows.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/update-integer-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -65207,7 +64429,7 @@ ], "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\/tablesdb\/update-integer-column.md", "auth": { "Project": [] } @@ -65238,6 +64460,15 @@ "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -65246,45 +64477,64 @@ "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}" + "required": { + "type": "boolean", + "description": "Is column required?", + "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.", + "min": { + "type": "integer", + "description": "Minimum value", "x-example": null, - "items": { - "type": "string" - } + "format": "int64", + "x-nullable": true }, - "transactionId": { + "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": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", + "description": "New Column Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } } } - }, - "delete": { - "summary": "Delete rows", - "operationId": "tablesDBDeleteRows", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { + "post": { + "summary": "Create IP address column", + "operationId": "tablesDBCreateIpColumn", "tags": [ "tablesDB" ], - "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", + "description": "Create IP address column.\n", "responses": { - "200": { - "description": "Rows List", + "202": { + "description": "ColumnIP", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/rowList" + "$ref": "#\/components\/schemas\/columnIp" } } } @@ -65292,18 +64542,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteRows", - "group": "rows", - "weight": 840, + "method": "createIpColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/delete-rows.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/create-ip-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -65311,7 +64562,7 @@ ], "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\/tablesdb\/create-ip-column.md", "auth": { "Project": [] } @@ -65335,7 +64586,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", @@ -65350,42 +64601,54 @@ "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" - } + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null }, - "transactionId": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { - "get": { - "summary": "Get row", - "operationId": "tablesDBGetRow", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "patch": { + "summary": "Update IP address column", + "operationId": "tablesDBUpdateIpColumn", "tags": [ "tablesDB" ], - "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Row", + "description": "ColumnIP", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/columnIp" } } } @@ -65393,28 +64656,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRow", - "group": "rows", - "weight": 834, + "method": "updateIpColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/get-row.md", + "demo": "tablesdb\/update-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.read", - "documents.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "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\/tablesdb\/update-ip-column.md", "auth": { "Project": [] } @@ -65422,9 +64684,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -65440,7 +64700,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", @@ -65449,54 +64709,64 @@ "in": "path" }, { - "name": "rowId", - "description": "Row ID.", + "name": "key", + "description": "Column Key.", "required": true, "schema": { - "type": "string", - "x-example": "<ROW_ID>" + "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.", - "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" } - ] - }, - "put": { - "summary": "Upsert a row", - "operationId": "tablesDBUpsertRow", + ], + "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", "tags": [ "tablesDB" ], - "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 geometric line column.", "responses": { - "201": { - "description": "Row", + "202": { + "description": "ColumnLine", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/columnLine" } } } @@ -65504,60 +64774,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsertRow", - "group": "rows", - "weight": 837, + "method": "createLineColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/upsert-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/create-line-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.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" - } - ], - "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\/tablesdb\/create-line-column.md", "auth": { "Project": [] } @@ -65565,9 +64802,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -65583,23 +64818,13 @@ }, { "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": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "in": "path" } ], "requestBody": { @@ -65608,46 +64833,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}" + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null }, - "permissions": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { "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": "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": "string" + "oneOf": [ + { + "type": "array" + } + ] }, "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\/line\/{key}": { "patch": { - "summary": "Update row", - "operationId": "tablesDBUpdateRow", + "summary": "Update line column", + "operationId": "tablesDBUpdateLineColumn", "tags": [ "tablesDB" ], - "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 line column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Row", + "description": "ColumnLine", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/columnLine" } } } @@ -65655,28 +64889,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRow", - "group": "rows", - "weight": 835, + "method": "updateLineColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/update-line-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-line-column.md", "auth": { "Project": [] } @@ -65684,9 +64917,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -65702,7 +64933,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", @@ -65711,12 +64942,11 @@ "in": "path" }, { - "name": "rowId", - "description": "Row ID.", + "name": "key", + "description": "Column Key.", "required": true, "schema": { - "type": "string", - "x-example": "<ROW_ID>" + "type": "string" }, "in": "path" } @@ -65727,68 +64957,83 @@ "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}" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "permissions": { + "default": { "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": "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": "string" + "oneOf": [ + { + "type": "array" + } + ] }, "x-nullable": true }, - "transactionId": { + "newKey": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", + "description": "New Column Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required" + ] } } } } - }, - "delete": { - "summary": "Delete row", - "operationId": "tablesDBDeleteRow", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { + "post": { + "summary": "Create longtext column", + "operationId": "tablesDBCreateLongtextColumn", "tags": [ "tablesDB" ], - "description": "Delete a row by its unique ID.", + "description": "Create a longtext column.\n", "responses": { - "204": { - "description": "No content" + "202": { + "description": "ColumnLongtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLongtext" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteRow", - "group": "rows", - "weight": 839, + "method": "createLongtextColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/delete-row.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/create-longtext-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-longtext-column.md", "auth": { "Project": [] } @@ -65796,9 +65041,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -65821,16 +65064,6 @@ "x-example": "<TABLE_ID>" }, "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "in": "path" } ], "requestBody": { @@ -65839,34 +65072,60 @@ "schema": { "type": "object", "properties": { - "transactionId": { + "key": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", + "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?", + "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}\/rows\/{rowId}\/logs": { - "get": { - "summary": "List row logs", - "operationId": "tablesDBListRowLogs", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "patch": { + "summary": "Update longtext column", + "operationId": "tablesDBUpdateLongtextColumn", "tags": [ "tablesDB" ], - "description": "Get the row activity logs list by its unique ID.", + "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Logs List", + "description": "ColumnLongtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/columnLongtext" } } } @@ -65874,32 +65133,35 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRowLogs", - "group": "logs", - "weight": 842, + "method": "updateLongtextColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/list-row-logs.md", + "demo": "tablesdb\/update-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.read", - "documents.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-longtext-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -65915,7 +65177,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", @@ -65924,46 +65186,64 @@ "in": "path" }, { - "name": "rowId", - "description": "Row ID.", + "name": "key", + "description": "Column Key.", "required": true, "schema": { - "type": "string", - "x-example": "<ROW_ID>" + "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). 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": "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}\/rows\/{rowId}\/{column}\/decrement": { - "patch": { - "summary": "Decrement row column", - "operationId": "tablesDBDecrementRowColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { + "post": { + "summary": "Create mediumtext column", + "operationId": "tablesDBCreateMediumtextColumn", "tags": [ "tablesDB" ], - "description": "Decrement a specific column of a row by a given value.", + "description": "Create a mediumtext column.\n", "responses": { - "200": { - "description": "Row", + "202": { + "description": "ColumnMediumtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/columnMediumtext" } } } @@ -65971,28 +65251,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "decrementRowColumn", - "group": "rows", - "weight": 844, + "method": "createMediumtextColumn", + "group": "columns", "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}", + "demo": "tablesdb\/create-mediumtext-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-mediumtext-column.md", "auth": { "Project": [] } @@ -66000,8 +65279,6 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], @@ -66018,32 +65295,13 @@ }, { "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": "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": { @@ -66052,47 +65310,60 @@ "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" + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null }, - "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 + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "transactionId": { + "default": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", + "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?", + "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}\/rows\/{rowId}\/{column}\/increment": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { "patch": { - "summary": "Increment row column", - "operationId": "tablesDBIncrementRowColumn", + "summary": "Update mediumtext column", + "operationId": "tablesDBUpdateMediumtextColumn", "tags": [ "tablesDB" ], - "description": "Increment a specific column of a row by a given value.", + "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Row", + "description": "ColumnMediumtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/columnMediumtext" } } } @@ -66100,28 +65371,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "incrementRowColumn", - "group": "rows", - "weight": 843, + "method": "updateMediumtextColumn", + "group": "columns", "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}", + "demo": "tablesdb\/update-mediumtext-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-mediumtext-column.md", "auth": { "Project": [] } @@ -66129,8 +65399,6 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], @@ -66147,7 +65415,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", @@ -66156,18 +65424,8 @@ "in": "path" }, { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", + "name": "key", + "description": "Column Key.", "required": true, "schema": { "type": "string" @@ -66181,47 +65439,49 @@ "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" + "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", + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", "x-nullable": true }, - "transactionId": { + "newKey": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", + "description": "New Column Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/usage": { - "get": { - "summary": "Get table usage stats", - "operationId": "tablesDBGetTableUsage", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { + "post": { + "summary": "Create point column", + "operationId": "tablesDBCreatePointColumn", "tags": [ "tablesDB" ], - "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 geometric point column.", "responses": { - "200": { - "description": "UsageTable", + "202": { + "description": "ColumnPoint", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageTable" + "$ref": "#\/components\/schemas\/columnPoint" } } } @@ -66229,32 +65489,35 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTableUsage", - "group": null, - "weight": 789, + "method": "createPointColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/get-table-usage.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", + "columns.write", + "attributes.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\/tablesdb\/create-point-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -66268,31 +65531,9 @@ }, "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.", + "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", @@ -66300,24 +65541,62 @@ }, "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, 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}\/usage": { - "get": { - "summary": "Get TablesDB usage stats", - "operationId": "tablesDBGetUsage", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + "patch": { + "summary": "Update point column", + "operationId": "tablesDBUpdatePointColumn", "tags": [ "tablesDB" ], - "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 a point column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "UsageDatabase", + "description": "ColumnPoint", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageDatabase" + "$ref": "#\/components\/schemas\/columnPoint" } } } @@ -66325,58 +65604,35 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 781, + "method": "updatePointColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/get-usage.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", + "columns.write", + "attributes.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": "#\/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\/tablesdb\/update-point-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -66391,45 +65647,80 @@ "in": "path" }, { - "name": "range", - "description": "Date range.", - "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": "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": "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" + ] + } + } + } + } } }, - "\/teams": { - "get": { - "summary": "List teams", - "operationId": "teamsList", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { + "post": { + "summary": "Create polygon column", + "operationId": "tablesDBCreatePolygonColumn", "tags": [ - "teams" + "tablesDB" ], - "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 geometric polygon column.", "responses": { - "200": { - "description": "Teams List", + "202": { + "description": "ColumnPolygon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/teamList" + "$ref": "#\/components\/schemas\/columnPolygon" } } } @@ -66437,25 +65728,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "teams", - "weight": 531, + "method": "createPolygonColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/list.md", + "demo": "tablesdb\/create-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-polygon-column.md", "auth": { "Project": [] } @@ -66463,63 +65756,86 @@ "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, + "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. 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": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<TABLE_ID>" }, - "in": "query" + "in": "path" } - ] - }, - "post": { - "summary": "Create team", - "operationId": "teamsCreate", + ], + "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, 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": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { + "patch": { + "summary": "Update polygon column", + "operationId": "tablesDBUpdatePolygonColumn", "tags": [ - "teams" + "tablesDB" ], - "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": "Update a polygon column. Changing the `default` value will not update already existing rows.", "responses": { - "201": { - "description": "Team", + "200": { + "description": "ColumnPolygon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/team" + "$ref": "#\/components\/schemas\/columnPolygon" } } } @@ -66527,25 +65843,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "teams", - "weight": 529, + "method": "updatePolygonColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/create.md", + "demo": "tablesdb\/update-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-polygon-column.md", "auth": { "Project": [] } @@ -66553,39 +65871,73 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { + "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": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" + } + ], + "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>" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "roles": { + "default": { "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, + "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 + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true } }, "required": [ - "teamId", - "name" + "required" ] } } @@ -66593,21 +65945,21 @@ } } }, - "\/teams\/{teamId}": { - "get": { - "summary": "Get team", - "operationId": "teamsGet", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { + "post": { + "summary": "Create relationship column", + "operationId": "tablesDBCreateRelationshipColumn", "tags": [ - "teams" + "tablesDB" ], - "description": "Get a team by its ID. All team members have read access for this resource.", + "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { - "200": { - "description": "Team", + "202": { + "description": "ColumnRelationship", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/team" + "$ref": "#\/components\/schemas\/columnRelationship" } } } @@ -66615,25 +65967,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "teams", - "weight": 530, + "method": "createRelationshipColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/get.md", + "demo": "tablesdb\/create-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-relationship-column.md", "auth": { "Project": [] } @@ -66641,84 +65995,27 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<DATABASE_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": 533, - "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": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ + }, { - "name": "teamId", - "description": "Team ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" } @@ -66729,53 +66026,111 @@ "schema": { "type": "object", "properties": { - "name": { + "relatedTableId": { "type": "string", - "description": "New team name. Max length: 128 chars.", - "x-example": "<NAME>" + "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" + }, + "twoWay": { + "type": "boolean", + "description": "Is Two Way?", + "default": false, + "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", + "default": "restrict", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate" } }, "required": [ - "name" + "relatedTableId", + "type" ] } } } } - }, - "delete": { - "summary": "Delete team", - "operationId": "teamsDelete", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { + "post": { + "summary": "Create string column", + "operationId": "tablesDBCreateStringColumn", "tags": [ - "teams" + "tablesDB" ], - "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "description": "Create a string column.\n", "responses": { - "204": { - "description": "No content" + "202": { + "description": "ColumnString", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnString" + } + } + } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "delete", - "group": "teams", - "weight": 532, + "method": "createStringColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/delete.md", + "demo": "tablesdb\/create-string-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-string-column.md", + "deprecated": { + "since": "1.9.0", + "replaceWith": "tablesDB.createTextColumn" + }, "auth": { "Project": [] } @@ -66783,125 +66138,227 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_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": { + "application\/json": { + "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" + }, + "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?", + "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" + ] + } + } + } + } } }, - "\/teams\/{teamId}\/logs": { - "get": { - "summary": "List team logs", - "operationId": "teamsListLogs", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { + "patch": { + "summary": "Update string column", + "operationId": "tablesDBUpdateStringColumn", "tags": [ - "teams" + "tablesDB" ], - "description": "Get the team activity logs list by its unique ID.", + "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Logs List", + "description": "ColumnString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/columnString" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 542, + "method": "updateStringColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/list-logs.md", + "demo": "tablesdb\/update-string-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-string-column.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_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). Only supported methods are limit and offset", - "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": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "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 + }, + "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" + ] + } + } + } + } } }, - "\/teams\/{teamId}\/memberships": { - "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { + "post": { + "summary": "Create text column", + "operationId": "tablesDBCreateTextColumn", "tags": [ - "teams" + "tablesDB" ], - "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 text column.\n", "responses": { - "200": { - "description": "Memberships List", + "202": { + "description": "ColumnText", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membershipList" + "$ref": "#\/components\/schemas\/columnText" } } } @@ -66909,25 +66366,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 538, + "method": "createTextColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/list-memberships.md", + "demo": "tablesdb\/create-text-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-text-column.md", "auth": { "Project": [] } @@ -66935,73 +66394,91 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_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, 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, + "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": "" - }, - "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 team membership", - "operationId": "teamsCreateMembership", + ], + "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?", + "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", "tags": [ - "teams" + "tablesDB" ], - "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": "Update a text column. Changing the `default` value will not update already existing rows.\n", "responses": { - "201": { - "description": "Membership", + "200": { + "description": "ColumnText", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/columnText" } } } @@ -67009,25 +66486,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMembership", - "group": "memberships", - "weight": 536, + "method": "updateTextColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/create-membership.md", - "rate-limit": 10, + "demo": "tablesdb\/update-text-column.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-text-column.md", "auth": { "Project": [] } @@ -67035,19 +66514,36 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_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" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } @@ -67058,45 +66554,27 @@ "schema": { "type": "object", "properties": { - "email": { - "type": "string", - "description": "Email of the new team member.", - "x-example": "email@example.com", - "format": "email" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "userId": { + "default": { "type": "string", - "description": "ID of the user to be added to a team.", - "x-example": "<USER_ID>" + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true }, - "phone": { + "newKey": { "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.", + "description": "New Column Key.", "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>" + "x-nullable": true } }, "required": [ - "roles" + "required", + "default" ] } } @@ -67104,21 +66582,21 @@ } } }, - "\/teams\/{teamId}\/memberships\/{membershipId}": { - "get": { - "summary": "Get team membership", - "operationId": "teamsGetMembership", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { + "post": { + "summary": "Create URL column", + "operationId": "tablesDBCreateUrlColumn", "tags": [ - "teams" + "tablesDB" ], - "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": "Create a URL column.\n", "responses": { - "200": { - "description": "Membership", + "202": { + "description": "ColumnURL", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/columnUrl" } } } @@ -67126,25 +66604,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMembership", - "group": "memberships", - "weight": 537, + "method": "createUrlColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/get-membership.md", + "demo": "tablesdb\/create-url-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-url-column.md", "auth": { "Project": [] } @@ -67152,48 +66632,86 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_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": "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": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { "patch": { - "summary": "Update team membership", - "operationId": "teamsUpdateMembership", + "summary": "Update URL column", + "operationId": "tablesDBUpdateUrlColumn", "tags": [ - "teams" + "tablesDB" ], - "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 an url column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Membership", + "description": "ColumnURL", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/columnUrl" } } } @@ -67201,25 +66719,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMembership", - "group": "memberships", - "weight": 539, + "method": "updateUrlColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/update-membership.md", + "demo": "tablesdb\/update-url-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-url-column.md", "auth": { "Project": [] } @@ -67227,29 +66747,36 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } @@ -67260,56 +66787,78 @@ "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.", + "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, - "items": { - "type": "string" - } + "x-nullable": true } }, "required": [ - "roles" + "required", + "default" ] } } } } - }, - "delete": { - "summary": "Delete team membership", - "operationId": "teamsDeleteMembership", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { + "post": { + "summary": "Create varchar column", + "operationId": "tablesDBCreateVarcharColumn", "tags": [ - "teams" + "tablesDB" ], - "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": "Create a varchar column.\n", "responses": { - "204": { - "description": "No content" + "202": { + "description": "ColumnVarchar", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnVarchar" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteMembership", - "group": "memberships", - "weight": 1209, + "method": "createVarcharColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/delete-membership.md", + "demo": "tablesdb\/create-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-varchar-column.md", "auth": { "Project": [] } @@ -67317,50 +66866,98 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership 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": "<MEMBERSHIP_ID>" + "x-example": "<TABLE_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?", + "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" + ] + } + } + } + } } }, - "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { "patch": { - "summary": "Update team membership status", - "operationId": "teamsUpdateMembershipStatus", + "summary": "Update varchar column", + "operationId": "tablesDBUpdateVarcharColumn", "tags": [ - "teams" + "tablesDB" ], - "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 a varchar column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Membership", + "description": "ColumnVarchar", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/columnVarchar" } } } @@ -67368,24 +66965,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMembershipStatus", - "group": "memberships", - "weight": 541, + "method": "updateVarcharColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/update-membership-status.md", + "demo": "tablesdb\/update-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-varchar-column.md", "auth": { "Project": [] } @@ -67393,52 +66993,74 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership 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": "<MEMBERSHIP_ID>" + "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": { - "userId": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { "type": "string", - "description": "User ID.", - "x-example": "<USER_ID>" + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true }, - "secret": { + "size": { + "type": "integer", + "description": "Maximum size of the varchar column.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "newKey": { "type": "string", - "description": "Secret key.", - "x-example": "<SECRET>" + "description": "New Column Key.", + "x-example": null, + "x-nullable": true } }, "required": [ - "userId", - "secret" + "required", + "default" ] } } @@ -67446,21 +67068,103 @@ } } }, - "\/teams\/{teamId}\/prefs": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { "get": { - "summary": "Get team preferences", - "operationId": "teamsGetPrefs", + "summary": "Get column", + "operationId": "tablesDBGetColumn", "tags": [ - "teams" + "tablesDB" ], - "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 column by ID.", "responses": { "200": { - "description": "Preferences", + "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\/preferences" + "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" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "boolean": "#\/components\/schemas\/columnBoolean", + "integer": "#\/components\/schemas\/columnInteger", + "double": "#\/components\/schemas\/columnFloat", + "string": "#\/components\/schemas\/columnString", + "datetime": "#\/components\/schemas\/columnDatetime", + "relationship": "#\/components\/schemas\/columnRelationship" + }, + "x-propertyNames": [ + "type", + "format" + ], + "x-mapping": { + "#\/components\/schemas\/columnBoolean": { + "type": "boolean" + }, + "#\/components\/schemas\/columnInteger": { + "type": "integer" + }, + "#\/components\/schemas\/columnFloat": { + "type": "double" + }, + "#\/components\/schemas\/columnEmail": { + "type": "string", + "format": "email" + }, + "#\/components\/schemas\/columnEnum": { + "type": "string", + "format": "enum" + }, + "#\/components\/schemas\/columnUrl": { + "type": "string", + "format": "url" + }, + "#\/components\/schemas\/columnIp": { + "type": "string", + "format": "ip" + }, + "#\/components\/schemas\/columnDatetime": { + "type": "datetime" + }, + "#\/components\/schemas\/columnRelationship": { + "type": "relationship" + }, + "#\/components\/schemas\/columnString": { + "type": "string" + } + } + } } } } @@ -67468,24 +67172,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "teams", - "weight": 534, + "method": "getColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/get-prefs.md", + "demo": "tablesdb\/get-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.read", + "collections.read", + "columns.read", + "attributes.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\/tablesdb\/get-column.md", "auth": { "Project": [] } @@ -67493,37 +67200,134 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_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" } ] }, - "put": { - "summary": "Update team preferences", - "operationId": "teamsUpdatePrefs", + "delete": { + "summary": "Delete column", + "operationId": "tablesDBDeleteColumn", "tags": [ - "teams" + "tablesDB" ], - "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": "Deletes a column.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteColumn", + "group": "columns", + "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", + "columns.write", + "attributes.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\/{key}\/relationship": { + "patch": { + "summary": "Update relationship column", + "operationId": "tablesDBUpdateRelationshipColumn", + "tags": [ + "tablesDB" + ], + "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { "200": { - "description": "Preferences", + "description": "ColumnRelationship", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/columnRelationship" } } } @@ -67531,24 +67335,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "teams", - "weight": 535, + "method": "updateRelationshipColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/update-prefs.md", + "demo": "tablesdb\/update-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-relationship-column.md", "auth": { "Project": [] } @@ -67556,18 +67363,36 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_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" } @@ -67578,36 +67403,46 @@ "schema": { "type": "object", "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "x-example": "{}" + "onDelete": { + "type": "string", + "description": "Constraints option", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true } - }, - "required": [ - "prefs" - ] + } } } } } } }, - "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { "get": { - "summary": "List tokens", - "operationId": "tokensList", + "summary": "List indexes", + "operationId": "tablesDBListIndexes", "tags": [ - "tokens" + "tablesDB" ], - "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "description": "List indexes on the table.", "responses": { "200": { - "description": "Resource Tokens List", + "description": "Column Indexes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/resourceTokenList" + "$ref": "#\/components\/schemas\/columnIndexList" } } } @@ -67615,22 +67450,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "files", - "weight": 545, + "method": "listIndexes", + "group": "indexes", "cookies": false, "type": "", - "demo": "tokens\/list.md", + "demo": "tablesdb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-indexes.md", "auth": { "Project": [] } @@ -67643,28 +67482,28 @@ ], "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 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": "<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 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 columns: key, type, status, attributes, error", "required": false, "schema": { "type": "array", @@ -67689,19 +67528,19 @@ ] }, "post": { - "summary": "Create file token", - "operationId": "tokensCreateFileToken", + "summary": "Create index", + "operationId": "tablesDBCreateIndex", "tags": [ - "tokens" + "tablesDB" ], - "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "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": { - "201": { - "description": "ResourceToken", + "202": { + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/resourceToken" + "$ref": "#\/components\/schemas\/columnIndex" } } } @@ -67709,22 +67548,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFileToken", - "group": "files", - "weight": 543, + "method": "createIndex", + "group": "indexes", "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": "tablesdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "indexes.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-index.md", "auth": { "Project": [] } @@ -67737,22 +67580,22 @@ ], "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 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": "<FILE_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" } @@ -67763,35 +67606,81 @@ "schema": { "type": "object", "properties": { - "expire": { + "key": { "type": "string", - "description": "Token expiry date", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "Index Key.", + "x-example": null + }, + "type": { + "type": "string", + "description": "Index type.", + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique", + "spatial" + ], + "x-enum-name": "TablesDBIndexType" + }, + "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.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy" + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], + "x-example": null, + "items": { + "type": "integer" + } } - } + }, + "required": [ + "key", + "type", + "columns" + ] } } } } } }, - "\/tokens\/{tokenId}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { "get": { - "summary": "Get token", - "operationId": "tokensGet", + "summary": "Get index", + "operationId": "tablesDBGetIndex", "tags": [ - "tokens" + "tablesDB" ], - "description": "Get a token by its unique ID.", + "description": "Get index by ID.", "responses": { "200": { - "description": "ResourceToken", + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/resourceToken" + "$ref": "#\/components\/schemas\/columnIndex" } } } @@ -67799,22 +67688,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "tokens", - "weight": 544, + "method": "getIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "tokens\/get.md", + "demo": "tablesdb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-index.md", "auth": { "Project": [] } @@ -67827,102 +67720,43 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOKEN_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" - } - ] - }, - "patch": { - "summary": "Update token", - "operationId": "tokensUpdate", - "tags": [ - "tokens" - ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", - "responses": { - "200": { - "description": "ResourceToken", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/resourceToken" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "update", - "group": "tokens", - "weight": 546, - "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", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + }, { - "name": "tokenId", - "description": "Token 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": "<TOKEN_ID>" + "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": { - "expire": { - "type": "string", - "description": "File token expiry date", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - } - } - } - } - } - } + ] }, "delete": { - "summary": "Delete token", - "operationId": "tokensDelete", + "summary": "Delete index", + "operationId": "tablesDBDeleteIndex", "tags": [ - "tokens" + "tablesDB" ], - "description": "Delete a token by its unique ID.", + "description": "Delete an index.", "responses": { "204": { "description": "No content" @@ -67930,22 +67764,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "tokens", - "weight": 547, + "method": "deleteIndex", + "group": "indexes", "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": "tablesdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "indexes.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-index.md", "auth": { "Project": [] } @@ -67958,109 +67796,52 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOKEN_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" - } - ] - } - }, - "\/usage\/events": { - "get": { - "summary": "List usage events", - "operationId": "usageListEvents", - "tags": [ - "usage" - ], - "description": "Query usage event metrics from the usage database. Returns individual event rows with full metadata. Pass Query objects as JSON strings to filter, paginate, and order results. Supported query methods: equal, greaterThanEqual, lessThanEqual, orderAsc, orderDesc, limit, offset. Supported filter attributes: metric, path, method, status, resource, resourceId, country, userAgent, time (these match the underlying column names \u2014 note that the response surfaces `resource` as `resourceType` and `country` as `countryCode`). When no time filter is supplied the endpoint defaults to the last 7 days. Default `limit(100)` is applied if none is given; user-supplied limits are capped at 500. The `total` field is capped at 5000 to keep counts predictable \u2014 pass `total=false` to skip the count entirely.", - "responses": { - "200": { - "description": "Usage events list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageEventList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listEvents", - "group": "events", - "weight": 1221, - "cookies": false, - "type": "", - "demo": "usage\/list-events.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "projectId:{project.$id}", - "scope": "usage.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + }, { - "name": "queries", - "description": "Array of query strings as JSON. Supported: equal(\"metric\", [...]), equal(\"path\", [...]), equal(\"method\", [...]), equal(\"status\", [...]), equal(\"resource\", [...]), equal(\"resourceId\", [...]), equal(\"country\", [...]), equal(\"userAgent\", [...]), greaterThanEqual(\"time\", \"...\"), lessThanEqual(\"time\", \"...\"), orderAsc(\"time\"), orderDesc(\"time\"), limit(N), offset(N).", - "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": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "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": "Index Key.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string" }, - "in": "query" + "in": "path" } ] } }, - "\/usage\/gauges": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/logs": { "get": { - "summary": "List usage gauges", - "operationId": "usageListGauges", + "summary": "List table logs", + "operationId": "tablesDBListTableLogs", "tags": [ - "usage" + "tablesDB" ], - "description": "Query usage gauge metrics (point-in-time resource snapshots) from the usage database. Returns individual gauge snapshots with metric, value, and timestamp. Pass Query objects as JSON strings to filter, paginate, and order results. Supported query methods: equal, greaterThanEqual, lessThanEqual, orderAsc, orderDesc, limit, offset. Supported filter attributes: metric, time. Use `orderDesc(\"time\"), limit(1)` to fetch the most recent snapshot. When no time filter is supplied the endpoint defaults to the last 7 days. Default `limit(100)` is applied if none is given; user-supplied limits are capped at 500. The `total` field is capped at 5000 to keep counts predictable \u2014 pass `total=false` to skip the count entirely.", + "description": "Get the table activity logs list by its unique ID.", "responses": { "200": { - "description": "Usage gauges list", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageGaugeList" + "$ref": "#\/components\/schemas\/logList" } } } @@ -68068,36 +67849,57 @@ }, "deprecated": false, "x-appwrite": { - "method": "listGauges", - "group": "gauges", - "weight": 1222, + "method": "listTableLogs", + "group": "tables", "cookies": false, "type": "", - "demo": "usage\/list-gauges.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "projectId:{project.$id}", - "scope": "usage.read", + "demo": "tablesdb\/list-table-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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": "queries", - "description": "Array of query strings as JSON. Supported: equal(\"metric\", [...]), greaterThanEqual(\"time\", \"...\"), lessThanEqual(\"time\", \"...\"), orderAsc(\"time\"), orderDesc(\"time\"), limit(N), offset(N).", + "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", @@ -68107,36 +67909,25 @@ "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": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { "get": { - "summary": "List users", - "operationId": "usersList", + "summary": "List rows", + "operationId": "tablesDBListRows", "tags": [ - "users" + "tablesDB" ], - "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "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": "Users List", + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/userList" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -68144,23 +67935,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "users", - "weight": 70, + "method": "listRows", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/list.md", + "demo": "tablesdb\/list-rows.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": [ + "rows.read", + "documents.read" + ], "platforms": [ "console", + "client", + "server", "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\/tablesdb\/list-rows.md", "auth": { "Project": [] } @@ -68168,13 +67963,35 @@ "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 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. You may filter on the following attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels, impersonator", + "description": "Array of query strings generated using the Query 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", @@ -68186,13 +68003,12 @@ "in": "query" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", "required": false, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<TRANSACTION_ID>" }, "in": "query" }, @@ -68206,23 +68022,35 @@ "default": true }, "in": "query" + }, + { + "name": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, table, schema version (columns and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; row writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] }, "post": { - "summary": "Create user", - "operationId": "usersCreate", + "summary": "Create row", + "operationId": "tablesDBCreateRow", "tags": [ - "users" + "tablesDB" ], - "description": "Create a new user.", + "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": "User", + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/row" } } } @@ -68230,23 +68058,88 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "users", - "weight": 61, + "method": "createRow", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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\/users\/create-user.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": [] } @@ -68254,7 +68147,31 @@ "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). Make sure to define columns before creating rows.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -68263,60 +68180,62 @@ "schema": { "type": "object", "properties": { - "userId": { + "rowId": { "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": "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>" }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email", - "x-nullable": true + "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}" }, - "phone": { - "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone", + "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 }, - "password": { - "type": "string", - "description": "Plain text user password. Must be at least 8 chars.", - "x-example": null + "rows": { + "type": "array", + "description": "Array of rows data as JSON objects.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } }, - "name": { + "transactionId": { "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "userId" - ] + } } } } } - } - }, - "\/users\/argon2": { - "post": { - "summary": "Create user with Argon2 password", - "operationId": "usersCreateArgon2User", + }, + "put": { + "summary": "Upsert rows", + "operationId": "tablesDBUpsertRows", "tags": [ - "users" + "tablesDB" ], - "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": "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": { "201": { - "description": "User", + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -68324,23 +68243,55 @@ }, "deprecated": false, "x-appwrite": { - "method": "createArgon2User", - "group": "users", - "weight": 64, + "method": "upsertRows", + "group": "rows", "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", + "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" + ], "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\/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": [] } @@ -68351,61 +68302,71 @@ "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": { - "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" + "rows": { + "type": "array", + "description": "Array of row data as JSON objects. May contain partial rows.", + "x-example": null, + "items": { + "type": "object" + } }, - "name": { + "transactionId": { "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } }, "required": [ - "userId", - "email", - "password" + "rows" ] } } } } - } - }, - "\/users\/bcrypt": { - "post": { - "summary": "Create user with bcrypt password", - "operationId": "usersCreateBcryptUser", + }, + "patch": { + "summary": "Update rows", + "operationId": "tablesDBUpdateRows", "tags": [ - "users" + "tablesDB" ], - "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 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": { - "201": { - "description": "User", + "200": { + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -68413,23 +68374,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBcryptUser", - "group": "users", - "weight": 62, + "method": "updateRows", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/create-bcrypt-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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" + ], "platforms": [ "console", "server" ], "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\/tablesdb\/update-rows.md", "auth": { "Project": [] } @@ -68440,61 +68403,75 @@ "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": { - "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" + "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}" }, - "password": { - "type": "string", - "description": "User password hashed using Bcrypt.", - "x-example": "password", - "format": "password" + "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" + } }, - "name": { + "transactionId": { "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "userId", - "email", - "password" - ] + } } } } } - } - }, - "\/users\/identities": { - "get": { - "summary": "List identities", - "operationId": "usersListIdentities", + }, + "delete": { + "summary": "Delete rows", + "operationId": "tablesDBDeleteRows", "tags": [ - "users" + "tablesDB" ], - "description": "Get identities for all users.", + "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", "responses": { "200": { - "description": "Identities List", + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/identityList" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -68502,23 +68479,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "listIdentities", - "group": "identities", - "weight": 78, + "method": "deleteRows", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/list-identities.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "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" + ], "platforms": [ "console", "server" ], "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\/tablesdb\/delete-rows.md", "auth": { "Project": [] } @@ -68531,75 +68510,97 @@ ], "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": "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. 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": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<TABLE_ID>" }, - "in": "query" + "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.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true + } + } + } + } + } + } } }, - "\/users\/identities\/{identityId}": { - "delete": { - "summary": "Delete identity", - "operationId": "usersDeleteIdentity", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", "tags": [ - "users" + "tablesDB" ], - "description": "Delete an identity by its unique ID.", + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteIdentity", - "group": "identities", - "weight": 102, + "method": "getRow", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/delete-identity.md", + "demo": "tablesdb\/get-row.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "rows.read", + "documents.read" + ], "platforms": [ "console", + "client", + "server", "server" ], "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\/tablesdb\/get-row.md", "auth": { "Project": [] } @@ -68607,38 +68608,81 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "identityId", - "description": "Identity ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<IDENTITY_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" + }, + { + "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.", + "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" } ] - } - }, - "\/users\/md5": { - "post": { - "summary": "Create user with MD5 password", - "operationId": "usersCreateMD5User", + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", "tags": [ - "users" + "tablesDB" ], - "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": "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": { "201": { - "description": "User", + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/row" } } } @@ -68646,23 +68690,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMD5User", - "group": "users", - "weight": 63, + "method": "upsertRow", + "group": "rows", "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", + "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", + "server", "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\/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": [] } @@ -68670,64 +68750,90 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], - "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" + "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": { + "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}" }, - "password": { - "type": "string", - "description": "User password hashed using MD5.", - "x-example": "password", - "format": "password" + "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 }, - "name": { + "transactionId": { "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "userId", - "email", - "password" - ] + } } } } } - } - }, - "\/users\/phpass": { - "post": { - "summary": "Create user with PHPass password", - "operationId": "usersCreatePHPassUser", + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", "tags": [ - "users" + "tablesDB" ], - "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 a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { - "201": { - "description": "User", + "200": { + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/row" } } } @@ -68735,23 +68841,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPHPassUser", - "group": "users", - "weight": 66, + "method": "updateRow", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/create-ph-pass-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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" + ], "platforms": [ "console", + "client", + "server", "server" ], "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\/tablesdb\/update-row.md", "auth": { "Project": [] } @@ -68759,7 +68869,41 @@ "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.", + "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": { @@ -68768,79 +68912,68 @@ "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" + "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}" }, - "password": { - "type": "string", - "description": "User password hashed using PHPass.", - "x-example": "password", - "format": "password" + "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 }, - "name": { + "transactionId": { "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "userId", - "email", - "password" - ] + } } } } } - } - }, - "\/users\/scrypt": { - "post": { - "summary": "Create user with Scrypt password", - "operationId": "usersCreateScryptUser", + }, + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", "tags": [ - "users" + "tablesDB" ], - "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 row 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": "createScryptUser", - "group": "users", - "weight": 67, + "method": "deleteRow", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/create-scrypt-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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" + ], "platforms": [ "console", + "client", + "server", "server" ], "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\/tablesdb\/delete-row.md", "auth": { "Project": [] } @@ -68848,7 +68981,41 @@ "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).", + "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": { @@ -68857,89 +69024,34 @@ "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": { + "transactionId": { "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordCpu", - "passwordMemory", - "passwordParallel", - "passwordLength" - ] + } } } } } } }, - "\/users\/scrypt-modified": { - "post": { - "summary": "Create user with Scrypt modified password", - "operationId": "usersCreateScryptModifiedUser", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/logs": { + "get": { + "summary": "List row logs", + "operationId": "tablesDBListRowLogs", "tags": [ - "users" + "tablesDB" ], - "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 the row activity logs list by its unique ID.", "responses": { - "201": { - "description": "User", + "200": { + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/logList" } } } @@ -68947,106 +69059,95 @@ }, "deprecated": false, "x-appwrite": { - "method": "createScryptModifiedUser", - "group": "users", - "weight": 68, + "method": "listRowLogs", + "group": "logs", "cookies": false, "type": "", - "demo": "users\/create-scrypt-modified-user.md", + "demo": "tablesdb\/list-row-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "rows.read", + "documents.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\/tablesdb\/get-row-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "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": "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" } - } + ] } }, - "\/users\/sha": { - "post": { - "summary": "Create user with SHA password", - "operationId": "usersCreateSHAUser", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", "tags": [ - "users" + "tablesDB" ], - "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": "Decrement a specific column of a row by a given value.", "responses": { - "201": { - "description": "User", + "200": { + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/row" } } } @@ -69054,23 +69155,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSHAUser", - "group": "users", - "weight": 65, + "method": "decrementRowColumn", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/create-sha-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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" + ], "platforms": [ + "client", + "server", "console", "server" ], "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\/tablesdb\/decrement-row-column.md", "auth": { "Project": [] } @@ -69078,84 +69183,229 @@ "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": { - "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>" + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" + "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 }, - "password": { + "transactionId": { "type": "string", - "description": "User password hashed using SHA.", - "x-example": "password", - "format": "password" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { + "patch": { + "summary": "Increment row column", + "operationId": "tablesDBIncrementRowColumn", + "tags": [ + "tablesDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "incrementRowColumn", + "group": "rows", + "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" + ], + "platforms": [ + "client", + "server", + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", + "auth": { + "Project": [] + } + }, + "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.", + "default": 1, + "x-example": null, + "format": "float" }, - "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": [] + "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 }, - "name": { + "transactionId": { "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "userId", - "email", - "password" - ] + } } } } } } }, - "\/users\/usage": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/usage": { "get": { - "summary": "Get users usage stats", - "operationId": "usersGetUsage", + "summary": "Get table usage stats", + "operationId": "tablesDBGetTableUsage", "tags": [ - "users" + "tablesDB" ], - "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 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": "UsageUsers", + "description": "UsageTable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageUsers" + "$ref": "#\/components\/schemas\/usageTable" } } } @@ -69163,22 +69413,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "getTableUsage", "group": null, - "weight": 104, "cookies": false, "type": "", - "demo": "users\/get-usage.md", + "demo": "tablesdb\/get-table-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": [ + "tables.read", + "collections.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\/tablesdb\/get-table-usage.md", "auth": { "Project": [] } @@ -69189,6 +69441,16 @@ } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, { "name": "range", "description": "Date range.", @@ -69210,25 +69472,35 @@ "default": "30d" }, "in": "query" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } ] } }, - "\/users\/{userId}": { + "\/tablesdb\/{databaseId}\/usage": { "get": { - "summary": "Get user", - "operationId": "usersGet", + "summary": "Get TablesDB usage stats", + "operationId": "tablesDBGetUsage", "tags": [ - "users" + "tablesDB" ], - "description": "Get a user by its unique ID.", + "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": { "200": { - "description": "User", + "description": "UsageDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/usageDatabase" } } } @@ -69236,77 +69508,135 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "users", - "weight": 71, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "users\/get.md", + "demo": "tablesdb\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": [ + "tables.read", + "collections.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\/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": [ { - "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": "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" } ] - }, - "delete": { - "summary": "Delete user", - "operationId": "usersDelete", + } + }, + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", "tags": [ - "users" + "teams" ], - "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 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": "delete", - "group": "users", - "weight": 100, + "method": "list", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/delete.md", + "demo": "teams\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "server" ], "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\/teams\/list-teams.md", "auth": { "Project": [] } @@ -69314,38 +69644,63 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "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). 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": "<USER_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}\/email": { - "patch": { - "summary": "Update email", - "operationId": "usersUpdateEmail", + }, + "post": { + "summary": "Create team", + "operationId": "teamsCreate", "tags": [ - "users" + "teams" ], - "description": "Update the user email by its unique ID.", + "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": "User", + "201": { + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/team" } } } @@ -69353,23 +69708,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "users", - "weight": 85, + "method": "create", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/update-email.md", + "demo": "teams\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "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\/teams\/create-team.md", "auth": { "Project": [] } @@ -69377,19 +69733,9 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" + "Session": [], + "Key": [], + "JWT": [] } ], "requestBody": { @@ -69398,15 +69744,31 @@ "schema": { "type": "object", "properties": { - "email": { + "teamId": { "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" + "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.", + "default": [ + "owner" + ], + "x-example": null, + "items": { + "type": "string" + } } }, "required": [ - "email" + "teamId", + "name" ] } } @@ -69414,21 +69776,21 @@ } } }, - "\/users\/{userId}\/impersonator": { - "patch": { - "summary": "Update user impersonator capability", - "operationId": "usersUpdateImpersonator", + "\/teams\/{teamId}": { + "get": { + "summary": "Get team", + "operationId": "teamsGet", "tags": [ - "users" + "teams" ], - "description": "Enable or disable whether a user can impersonate other users. When impersonation headers are used, the request runs as the target user for API behavior, while internal audit logs still attribute the action to the original impersonator and store the impersonated target details only in internal audit payload data.\n", + "description": "Get a team by its ID. All team members have read access for this resource.", "responses": { "200": { - "description": "User", + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/team" } } } @@ -69436,23 +69798,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateImpersonator", - "group": "users", - "weight": 81, + "method": "get", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/update-impersonator.md", + "demo": "teams\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-impersonator.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", "auth": { "Project": [] } @@ -69460,57 +69823,38 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "impersonator": { - "type": "boolean", - "description": "Whether the user can impersonate other users. When true, the user can browse project users to choose a target and can pass impersonation headers to act as that user. Internal audit logs still attribute impersonated actions to the original impersonator and store the target user details only in internal audit payload data.", - "x-example": false - } - }, - "required": [ - "impersonator" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/jwts": { - "post": { - "summary": "Create user JWT", - "operationId": "usersCreateJWT", + ] + }, + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", "tags": [ - "users" + "teams" ], - "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 team's name by its unique ID.", "responses": { - "201": { - "description": "JWT", + "200": { + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/jwt" + "$ref": "#\/components\/schemas\/team" } } } @@ -69518,23 +69862,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "createJWT", - "group": "sessions", - "weight": 103, + "method": "updateName", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/create-jwt.md", + "demo": "teams\/update-name.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "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\/teams\/update-team-name.md", "auth": { "Project": [] } @@ -69542,17 +69887,19 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" } @@ -69563,63 +69910,52 @@ "schema": { "type": "object", "properties": { - "sessionId": { + "name": { "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" + "description": "New team name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "name" + ] } } } } - } - }, - "\/users\/{userId}\/labels": { - "put": { - "summary": "Update user labels", - "operationId": "usersUpdateLabels", + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", "tags": [ - "users" + "teams" ], - "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": "Delete a team using its ID. Only team members with the owner role can delete the team.", "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": 80, + "method": "delete", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/update-labels.md", + "demo": "teams\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "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\/teams\/delete-team.md", "auth": { "Project": [] } @@ -69627,53 +69963,33 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" } - ], - "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": { + "\/teams\/{teamId}\/logs": { "get": { - "summary": "List user logs", - "operationId": "usersListLogs", + "summary": "List team logs", + "operationId": "teamsListLogs", "tags": [ - "users" + "teams" ], - "description": "Get the user activity logs list by its unique ID.", + "description": "Get the team activity logs list by its unique ID.", "responses": { "200": { "description": "Logs List", @@ -69690,39 +70006,36 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 76, "cookies": false, "type": "", - "demo": "users\/list-logs.md", + "demo": "teams\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "teams.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\/teams\/get-team-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, @@ -69753,14 +70066,14 @@ ] } }, - "\/users\/{userId}\/memberships": { + "\/teams\/{teamId}\/memberships": { "get": { - "summary": "List user memberships", - "operationId": "usersListMemberships", + "summary": "List team memberships", + "operationId": "teamsListMemberships", "tags": [ - "users" + "teams" ], - "description": "Get the user membership list by its unique ID.", + "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", @@ -69777,21 +70090,22 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 75, "cookies": false, "type": "", - "demo": "users\/list-memberships.md", + "demo": "teams\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "server" ], "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\/teams\/list-team-members.md", "auth": { "Project": [] } @@ -69799,17 +70113,19 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, @@ -69849,107 +70165,46 @@ "in": "query" } ] - } - }, - "\/users\/{userId}\/mfa": { - "patch": { - "summary": "Update MFA", - "operationId": "usersUpdateMfa", + }, + "post": { + "summary": "Create team membership", + "operationId": "teamsCreateMembership", "tags": [ - "users" + "teams" ], - "description": "Enable or disable MFA on a user account.", + "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": "User", + "201": { + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/membership" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfa", - "group": "users", - "weight": 90, + "method": "createMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "users\/update-mfa.md", - "rate-limit": 0, + "demo": "teams\/create-membership.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.write", "platforms": [ "console", + "client", + "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" - }, - "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\/teams\/create-team-membership.md", "auth": { "Project": [] } @@ -69957,17 +70212,19 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" } @@ -69978,14 +70235,50 @@ "schema": { "type": "object", "properties": { - "mfa": { - "type": "boolean", - "description": "Enable or disable MFA.", - "x-example": false + "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 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.", + "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": [ - "mfa" + "roles" ] } } @@ -69993,96 +70286,46 @@ } } }, - "\/users\/{userId}\/mfa\/authenticators\/{type}": { - "delete": { - "summary": "Delete authenticator", - "operationId": "usersDeleteMfaAuthenticator", + "\/teams\/{teamId}\/memberships\/{membershipId}": { + "get": { + "summary": "Get team membership", + "operationId": "teamsGetMembership", "tags": [ - "users" + "teams" ], - "description": "Delete an authenticator app.", + "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": true, + "deprecated": false, "x-appwrite": { - "method": "deleteMfaAuthenticator", - "group": "mfa", - "weight": 95, + "method": "getMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "users\/delete-mfa-authenticator.md", + "demo": "teams\/get-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", "auth": { "Project": [] } @@ -70090,133 +70333,73 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, { - "name": "type", - "description": "Type of authenticator.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "totp", - "enum": [ - "totp" - ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-example": "<MEMBERSHIP_ID>" }, "in": "path" } ] - } - }, - "\/users\/{userId}\/mfa\/factors": { - "get": { - "summary": "List factors", - "operationId": "usersListMfaFactors", + }, + "patch": { + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", "tags": [ - "users" + "teams" ], - "description": "List the factors available on the account to be used as a MFA challange.", + "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": "MFAFactors", + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaFactors" + "$ref": "#\/components\/schemas\/membership" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listMfaFactors", - "group": "mfa", - "weight": 91, + "method": "updateMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "users\/list-mfa-factors.md", + "demo": "teams\/update-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", "auth": { "Project": [] } @@ -70224,118 +70407,88 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MEMBERSHIP_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": { + "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, + "items": { + "type": "string" + } + } + }, + "required": [ + "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": true, + "deprecated": false, "x-appwrite": { - "method": "getMfaRecoveryCodes", - "group": "mfa", - "weight": 92, + "method": "deleteMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "users\/get-mfa-recovery-codes.md", + "demo": "teams\/delete-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "teams.write", "platforms": [ "console", + "client", + "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" - }, - "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 - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", "auth": { "Project": [] } @@ -70343,116 +70496,74 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MEMBERSHIP_ID>" }, "in": "path" } ] - }, - "put": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "usersUpdateMfaRecoveryCodes", + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", "tags": [ - "users" + "teams" ], - "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": "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": "MFA Recovery Codes", + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + "$ref": "#\/components\/schemas\/membership" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfaRecoveryCodes", - "group": "mfa", - "weight": 94, + "method": "updateMembershipStatus", + "group": "memberships", "cookies": false, "type": "", - "demo": "users\/update-mfa-recovery-codes.md", + "demo": "teams\/update-membership-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "public", "platforms": [ "console", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", "auth": { "Project": [] } @@ -70460,116 +70571,98 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MEMBERSHIP_ID>" }, "in": "path" } - ] - }, - "patch": { - "summary": "Create MFA recovery codes", - "operationId": "usersCreateMfaRecoveryCodes", + ], + "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": [ - "users" + "teams" ], - "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": "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": { - "201": { - "description": "MFA Recovery Codes", + "200": { + "description": "Preferences", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + "$ref": "#\/components\/schemas\/preferences" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createMfaRecoveryCodes", - "group": "mfa", - "weight": 93, + "method": "getPrefs", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/create-mfa-recovery-codes.md", + "demo": "teams\/get-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.read", "platforms": [ "console", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", "auth": { "Project": [] } @@ -70577,38 +70670,37 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" } ] - } - }, - "\/users\/{userId}\/name": { - "patch": { - "summary": "Update name", - "operationId": "usersUpdateName", + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", "tags": [ - "users" + "teams" ], - "description": "Update the user name 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": "User", + "description": "Preferences", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/preferences" } } } @@ -70616,23 +70708,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "users", - "weight": 83, + "method": "updatePrefs", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/update-name.md", + "demo": "teams\/update-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", "auth": { "Project": [] } @@ -70640,17 +70732,18 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" } @@ -70661,14 +70754,14 @@ "schema": { "type": "object", "properties": { - "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": [ - "name" + "prefs" ] } } @@ -70676,21 +70769,21 @@ } } }, - "\/users\/{userId}\/password": { - "patch": { - "summary": "Update password", - "operationId": "usersUpdatePassword", + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", "tags": [ - "users" + "tokens" ], - "description": "Update the user password by its unique ID.", + "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": "User", + "description": "Resource Tokens List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/resourceTokenList" } } } @@ -70698,23 +70791,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePassword", - "group": "users", - "weight": 84, + "method": "list", + "group": "files", "cookies": false, "type": "", - "demo": "users\/update-password.md", + "demo": "tokens\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "tokens.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": [] } @@ -70727,52 +70818,65 @@ ], "parameters": [ { - "name": "userId", - "description": "User 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": "<USER_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "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: 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" } - ], - "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 file token", + "operationId": "tokensCreateFileToken", "tags": [ - "users" + "tokens" ], - "description": "Update the user phone by its unique ID.", + "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": "User", + "201": { + "description": "ResourceToken", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/resourceToken" } } } @@ -70780,23 +70884,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePhone", - "group": "users", - "weight": 86, + "method": "createFileToken", + "group": "files", "cookies": false, "type": "", - "demo": "users\/update-phone.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.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\/users\/update-user-phone.md", "auth": { "Project": [] } @@ -70809,12 +70911,22 @@ ], "parameters": [ { - "name": "userId", - "description": "User 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": "<USER_ID>" + "x-example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" }, "in": "path" } @@ -70825,37 +70937,35 @@ "schema": { "type": "object", "properties": { - "number": { + "expire": { "type": "string", - "description": "User phone number.", - "x-example": "+12065550100", - "format": "phone" + "description": "Token expiry date", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true } - }, - "required": [ - "number" - ] + } } } } } } }, - "\/users\/{userId}\/prefs": { + "\/tokens\/{tokenId}": { "get": { - "summary": "Get user preferences", - "operationId": "usersGetPrefs", + "summary": "Get token", + "operationId": "tokensGet", "tags": [ - "users" + "tokens" ], - "description": "Get the user preferences by its unique ID.", + "description": "Get a token by its unique ID.", "responses": { "200": { - "description": "Preferences", + "description": "ResourceToken", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/resourceToken" } } } @@ -70863,23 +70973,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "users", - "weight": 72, + "method": "get", + "group": "tokens", "cookies": false, "type": "", - "demo": "users\/get-prefs.md", + "demo": "tokens\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "tokens.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": [] } @@ -70892,31 +71000,31 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "tokenId", + "description": "Token ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TOKEN_ID>" }, "in": "path" } ] }, "patch": { - "summary": "Update user preferences", - "operationId": "usersUpdatePrefs", + "summary": "Update token", + "operationId": "tokensUpdate", "tags": [ - "users" + "tokens" ], - "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": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", "responses": { "200": { - "description": "Preferences", + "description": "ResourceToken", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/resourceToken" } } } @@ -70924,23 +71032,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "users", - "weight": 88, + "method": "update", + "group": "tokens", "cookies": false, "type": "", - "demo": "users\/update-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.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\/users\/update-user-prefs.md", "auth": { "Project": [] } @@ -70953,12 +71059,12 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "tokenId", + "description": "Token unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TOKEN_ID>" }, "in": "path" } @@ -70969,36 +71075,87 @@ "schema": { "type": "object", "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "x-example": "{}" + "expire": { + "type": "string", + "description": "File token expiry date", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true } - }, - "required": [ - "prefs" - ] + } } } } } + }, + "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", + "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, + "schema": { + "type": "string", + "x-example": "<TOKEN_ID>" + }, + "in": "path" + } + ] } }, - "\/users\/{userId}\/sessions": { + "\/usage\/events": { "get": { - "summary": "List user sessions", - "operationId": "usersListSessions", + "summary": "List usage events", + "operationId": "usageListEvents", "tags": [ - "users" + "usage" ], - "description": "Get the user sessions list by its unique ID.", + "description": "Query usage event metrics from the usage database. Returns individual event rows with full metadata. Pass Query objects as JSON strings to filter, paginate, and order results. Supported query methods: equal, greaterThanEqual, lessThanEqual, orderAsc, orderDesc, limit, offset. Supported filter attributes: metric, path, method, status, resource, resourceId, country, userAgent, time (these match the underlying column names \u2014 note that the response surfaces `resource` as `resourceType` and `country` as `countryCode`). When no time filter is supplied the endpoint defaults to the last 7 days. Default `limit(100)` is applied if none is given; user-supplied limits are capped at 500. The `total` field is capped at 5000 to keep counts predictable \u2014 pass `total=false` to skip the count entirely.", "responses": { "200": { - "description": "Sessions List", + "description": "Usage events list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/sessionList" + "$ref": "#\/components\/schemas\/usageEventList" } } } @@ -71006,26 +71163,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSessions", - "group": "sessions", - "weight": 74, + "method": "listEvents", + "group": "events", "cookies": false, "type": "", - "demo": "users\/list-sessions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.read", - "sessions.read" - ], + "demo": "usage\/list-events.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{project.$id}", + "scope": "usage.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": [] } @@ -71038,14 +71190,17 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, + "name": "queries", + "description": "Array of query strings as JSON. Supported: equal(\"metric\", [...]), equal(\"path\", [...]), equal(\"method\", [...]), equal(\"status\", [...]), equal(\"resource\", [...]), equal(\"resourceId\", [...]), equal(\"country\", [...]), equal(\"userAgent\", [...]), greaterThanEqual(\"time\", \"...\"), lessThanEqual(\"time\", \"...\"), orderAsc(\"time\"), orderDesc(\"time\"), limit(N), offset(N).", + "required": false, "schema": { - "type": "string", - "x-example": "<USER_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { "name": "total", @@ -71059,21 +71214,23 @@ "in": "query" } ] - }, - "post": { - "summary": "Create session", - "operationId": "usersCreateSession", + } + }, + "\/usage\/gauges": { + "get": { + "summary": "List usage gauges", + "operationId": "usageListGauges", "tags": [ - "users" + "usage" ], - "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": "Query usage gauge metrics (point-in-time resource snapshots) from the usage database. Returns individual gauge snapshots with metric, value, and timestamp. Pass Query objects as JSON strings to filter, paginate, and order results. Supported query methods: equal, greaterThanEqual, lessThanEqual, orderAsc, orderDesc, limit, offset. Supported filter attributes: metric, time. Use `orderDesc(\"time\"), limit(1)` to fetch the most recent snapshot. When no time filter is supplied the endpoint defaults to the last 7 days. Default `limit(100)` is applied if none is given; user-supplied limits are capped at 500. The `total` field is capped at 5000 to keep counts predictable \u2014 pass `total=false` to skip the count entirely.", "responses": { - "201": { - "description": "Session", + "200": { + "description": "Usage gauges list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/session" + "$ref": "#\/components\/schemas\/usageGaugeList" } } } @@ -71081,26 +71238,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSession", - "group": "sessions", - "weight": 96, + "method": "listGauges", + "group": "gauges", "cookies": false, "type": "", - "demo": "users\/create-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], + "demo": "usage\/list-gauges.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{project.$id}", + "scope": "usage.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", "auth": { "Project": [] } @@ -71113,51 +71265,70 @@ ], "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, + "name": "queries", + "description": "Array of query strings as JSON. Supported: equal(\"metric\", [...]), greaterThanEqual(\"time\", \"...\"), lessThanEqual(\"time\", \"...\"), orderAsc(\"time\"), orderDesc(\"time\"), limit(N), offset(N).", + "required": false, "schema": { - "type": "string", - "x-example": "<USER_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" } ] - }, - "delete": { - "summary": "Delete user sessions", - "operationId": "usersDeleteSessions", + } + }, + "\/users": { + "get": { + "summary": "List users", + "operationId": "usersList", "tags": [ "users" ], - "description": "Delete all user's sessions by using the user's unique ID.", + "description": "Get a list of all the project's users. You can use the query params to filter your results.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Users List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/userList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSessions", - "group": "sessions", - "weight": 99, + "method": "list", + "group": "users", "cookies": false, "type": "", - "demo": "users\/delete-sessions.md", + "demo": "users\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", "auth": { "Project": [] } @@ -71170,53 +71341,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 attributes: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels, impersonator", + "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": "<USER_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}\/sessions\/{sessionId}": { - "delete": { - "summary": "Delete user session", - "operationId": "usersDeleteSession", + }, + "post": { + "summary": "Create user", + "operationId": "usersCreate", "tags": [ "users" ], - "description": "Delete a user sessions by its unique ID.", + "description": "Create a new user.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSession", - "group": "sessions", - "weight": 98, + "method": "create", + "group": "users", "cookies": false, "type": "", - "demo": "users\/delete-session.md", + "demo": "users\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], + "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", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md", "auth": { "Project": [] } @@ -71227,40 +71424,63 @@ "Key": [] } ], - "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" + "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.", + "default": "", + "x-example": null + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId" + ] + } + } } - ] + } } }, - "\/users\/{userId}\/status": { - "patch": { - "summary": "Update user status", - "operationId": "usersUpdateStatus", + "\/users\/argon2": { + "post": { + "summary": "Create user with Argon2 password", + "operationId": "usersCreateArgon2User", "tags": [ "users" ], - "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": "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": { + "201": { "description": "User", "content": { "application\/json": { @@ -71273,12 +71493,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateStatus", + "method": "createArgon2User", "group": "users", - "weight": 79, "cookies": false, "type": "", - "demo": "users\/update-status.md", + "demo": "users\/create-argon-2-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -71289,7 +71508,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", "auth": { "Project": [] } @@ -71300,32 +71519,40 @@ "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": { - "status": { - "type": "boolean", - "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", - "x-example": 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>" + }, + "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.", + "default": "", + "x-example": "<NAME>" } }, "required": [ - "status" + "userId", + "email", + "password" ] } } @@ -71333,106 +71560,21 @@ } } }, - "\/users\/{userId}\/targets": { - "get": { - "summary": "List user targets", - "operationId": "usersListTargets", - "tags": [ - "users" - ], - "description": "List the messaging targets that are associated with a user.", - "responses": { - "200": { - "description": "Target list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/targetList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listTargets", - "group": "targets", - "weight": 77, - "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": [] - } - }, - "security": [ - { - "Project": [], - "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, 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\/bcrypt": { "post": { - "summary": "Create user target", - "operationId": "usersCreateTarget", + "summary": "Create user with bcrypt password", + "operationId": "usersCreateBcryptUser", "tags": [ "users" ], - "description": "Create a messaging target.", + "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": "Target", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/target" + "$ref": "#\/components\/schemas\/user" } } } @@ -71440,23 +71582,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTarget", - "group": "targets", - "weight": 69, + "method": "createBcryptUser", + "group": "users", "cookies": false, "type": "", - "demo": "users\/create-target.md", + "demo": "users\/create-bcrypt-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "scope": "users.write", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", "auth": { "Project": [] } @@ -71467,61 +71608,40 @@ "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": { + "userId": { "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": [] + "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>" }, - "identifier": { + "email": { "type": "string", - "description": "The target identifier (token, email, phone etc.)", - "x-example": "<IDENTIFIER>" + "description": "User email.", + "x-example": "email@example.com", + "format": "email" }, - "providerId": { + "password": { "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>" + "description": "User password hashed using Bcrypt.", + "x-example": "password", + "format": "password" }, "name": { "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "<NAME>" } }, "required": [ - "targetId", - "providerType", - "identifier" + "userId", + "email", + "password" ] } } @@ -71529,21 +71649,21 @@ } } }, - "\/users\/{userId}\/targets\/{targetId}": { + "\/users\/identities": { "get": { - "summary": "Get user target", - "operationId": "usersGetTarget", + "summary": "List identities", + "operationId": "usersListIdentities", "tags": [ "users" ], - "description": "Get a user's push notification target by ID.", + "description": "Get identities for all users.", "responses": { "200": { - "description": "Target", + "description": "Identities List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/target" + "$ref": "#\/components\/schemas\/identityList" } } } @@ -71551,23 +71671,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTarget", - "group": "targets", - "weight": 73, + "method": "listIdentities", + "group": "identities", "cookies": false, "type": "", - "demo": "users\/get-target.md", + "demo": "users\/list-identities.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.read", + "scope": "users.read", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", "auth": { "Project": [] } @@ -71580,131 +71699,51 @@ ], "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: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", + "required": false, "schema": { - "type": "string", - "x-example": "<USER_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "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": 89, - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" }, { - "name": "targetId", - "description": "Target 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": "<TARGET_ID>" + "type": "boolean", + "x-example": false, + "default": true }, - "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>" - } - } - } - } + "in": "query" } - } - }, + ] + } + }, + "\/users\/identities\/{identityId}": { "delete": { - "summary": "Delete user target", - "operationId": "usersDeleteTarget", + "summary": "Delete identity", + "operationId": "usersDeleteIdentity", "tags": [ "users" ], - "description": "Delete a messaging target.", + "description": "Delete an identity by its unique ID.", "responses": { "204": { "description": "No content" @@ -71712,23 +71751,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteTarget", - "group": "targets", - "weight": 101, + "method": "deleteIdentity", + "group": "identities", "cookies": false, "type": "", - "demo": "users\/delete-target.md", + "demo": "users\/delete-identity.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "scope": "users.write", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", "auth": { "Project": [] } @@ -71741,43 +71779,33 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "targetId", - "description": "Target ID.", + "name": "identityId", + "description": "Identity ID.", "required": true, "schema": { "type": "string", - "x-example": "<TARGET_ID>" + "x-example": "<IDENTITY_ID>" }, "in": "path" } ] } }, - "\/users\/{userId}\/tokens": { + "\/users\/md5": { "post": { - "summary": "Create token", - "operationId": "usersCreateToken", + "summary": "Create user with MD5 password", + "operationId": "usersCreateMD5User", "tags": [ "users" ], - "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": "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": "Token", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/token" + "$ref": "#\/components\/schemas\/user" } } } @@ -71785,12 +71813,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "createToken", - "group": "sessions", - "weight": 97, + "method": "createMD5User", + "group": "users", "cookies": false, "type": "", - "demo": "users\/create-token.md", + "demo": "users\/create-md-5-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -71801,7 +71828,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", "auth": { "Project": [] } @@ -71812,53 +71839,57 @@ "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": { - "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" + "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.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } } } } }, - "\/users\/{userId}\/verification": { - "patch": { - "summary": "Update email verification", - "operationId": "usersUpdateEmailVerification", + "\/users\/phpass": { + "post": { + "summary": "Create user with PHPass password", + "operationId": "usersCreatePHPassUser", "tags": [ "users" ], - "description": "Update the user email verification status 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": { + "201": { "description": "User", "content": { "application\/json": { @@ -71871,12 +71902,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmailVerification", + "method": "createPHPassUser", "group": "users", - "weight": 87, "cookies": false, "type": "", - "demo": "users\/update-email-verification.md", + "demo": "users\/create-ph-pass-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -71887,7 +71917,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", "auth": { "Project": [] } @@ -71898,32 +71928,40 @@ "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": { - "emailVerification": { - "type": "boolean", - "description": "User email verification status.", - "x-example": false + "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.", + "default": "", + "x-example": "<NAME>" } }, "required": [ - "emailVerification" + "userId", + "email", + "password" ] } } @@ -71931,16 +71969,16 @@ } } }, - "\/users\/{userId}\/verification\/phone": { - "patch": { - "summary": "Update phone verification", - "operationId": "usersUpdatePhoneVerification", + "\/users\/scrypt": { + "post": { + "summary": "Create user with Scrypt password", + "operationId": "usersCreateScryptUser", "tags": [ "users" ], - "description": "Update the user phone verification status by its unique ID.", + "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": { + "201": { "description": "User", "content": { "application\/json": { @@ -71953,12 +71991,11 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePhoneVerification", + "method": "createScryptUser", "group": "users", - "weight": 82, "cookies": false, "type": "", - "demo": "users\/update-phone-verification.md", + "demo": "users\/create-scrypt-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -71969,7 +72006,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", "auth": { "Project": [] } @@ -71980,32 +72017,74 @@ "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": { - "phoneVerification": { - "type": "boolean", - "description": "User phone verification status.", - "x-example": 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>" + }, + "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.", + "default": "", + "x-example": "<NAME>" } }, "required": [ - "phoneVerification" + "userId", + "email", + "password", + "passwordSalt", + "passwordCpu", + "passwordMemory", + "passwordParallel", + "passwordLength" ] } } @@ -72013,35 +72092,21 @@ } } }, - "\/vcs\/github\/installations\/{installationId}\/detections": { + "\/users\/scrypt-modified": { "post": { - "summary": "Create repository detection", - "operationId": "vcsCreateRepositoryDetection", + "summary": "Create user with Scrypt modified password", + "operationId": "usersCreateScryptModifiedUser", "tags": [ - "vcs" + "users" ], - "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": "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": "DetectionRuntime, or DetectionFramework", + "201": { + "description": "User", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/detectionRuntime" - }, - { - "$ref": "#\/components\/schemas\/detectionFramework" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "runtime": "#\/components\/schemas\/detectionRuntime", - "framework": "#\/components\/schemas\/detectionFramework" - } - } + "$ref": "#\/components\/schemas\/user" } } } @@ -72049,41 +72114,137 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRepositoryDetection", - "group": "repositories", - "weight": 575, + "method": "createScryptModifiedUser", + "group": "users", "cookies": false, "type": "", - "demo": "vcs\/create-repository-detection.md", + "demo": "users\/create-scrypt-modified-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository-detection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ + "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.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordSaltSeparator", + "passwordSignerKey" + ] + } + } + } + } + } + }, + "\/users\/sha": { + "post": { + "summary": "Create user with SHA password", + "operationId": "usersCreateSHAUser", + "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.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createSHAUser", + "group": "users", + "cookies": false, + "type": "", + "demo": "users\/create-sha-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-sha-user.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "x-example": "<INSTALLATION_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -72092,31 +72253,53 @@ "schema": { "type": "object", "properties": { - "providerRepositoryId": { + "userId": { "type": "string", - "description": "Repository Id", - "x-example": "<PROVIDER_REPOSITORY_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>" }, - "type": { + "email": { "type": "string", - "description": "Detector type. Must be one of the following: runtime, framework", - "x-example": "runtime", + "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": [ - "runtime", - "framework" + "sha1", + "sha224", + "sha256", + "sha384", + "sha512\/224", + "sha512\/256", + "sha512", + "sha3-224", + "sha3-256", + "sha3-384", + "sha3-512" ], - "x-enum-name": "VCSDetectionType", - "x-enum-keys": [] + "x-enum-name": "PasswordHash" }, - "providerRootDirectory": { + "name": { "type": "string", - "description": "Path to Root Directory", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } }, "required": [ - "providerRepositoryId", - "type" + "userId", + "email", + "password" ] } } @@ -72124,35 +72307,21 @@ } } }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories": { + "\/users\/usage": { "get": { - "summary": "List repositories", - "operationId": "vcsListRepositories", + "summary": "Get users usage stats", + "operationId": "usersGetUsage", "tags": [ - "vcs" + "users" ], - "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": "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": "Runtime Provider Repositories List, or Framework Provider Repositories List", + "description": "UsageUsers", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/providerRepositoryRuntimeList" - }, - { - "$ref": "#\/components\/schemas\/providerRepositoryFrameworkList" - } - ], - "discriminator": { - "propertyName": "type", - "mapping": { - "runtime": "#\/components\/schemas\/providerRepositoryRuntimeList", - "framework": "#\/components\/schemas\/providerRepositoryFrameworkList" - } - } + "$ref": "#\/components\/schemas\/usageUsers" } } } @@ -72160,22 +72329,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRepositories", - "group": "repositories", - "weight": 572, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "vcs\/list-repositories.md", + "demo": "users\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "users.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repositories.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-usage.md", "auth": { "Project": [] } @@ -72187,71 +72355,40 @@ ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "x-example": "<INSTALLATION_ID>" - }, - "in": "path" - }, - { - "name": "type", - "description": "Detector type. Must be one of the following: runtime, framework", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "runtime", + "x-example": "24h", "enum": [ - "runtime", - "framework" + "24h", + "30d", + "90d" ], - "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": [] + "x-enum-name": "UsageRange", + "default": "30d" }, "in": "query" } ] - }, - "post": { - "summary": "Create repository", - "operationId": "vcsCreateRepository", + } + }, + "\/users\/{userId}": { + "get": { + "summary": "Get user", + "operationId": "usersGet", "tags": [ - "vcs" + "users" ], - "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": "Get a user by its unique ID.", "responses": { "200": { - "description": "ProviderRepository", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/providerRepository" + "$ref": "#\/components\/schemas\/user" } } } @@ -72259,85 +72396,114 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRepository", - "group": "repositories", - "weight": 570, + "method": "get", + "group": "users", "cookies": false, "type": "", - "demo": "vcs\/create-repository.md", + "demo": "users\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "scope": "users.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<INSTALLATION_ID>" + "x-example": "<USER_ID>" }, "in": "path" } + ] + }, + "delete": { + "summary": "Delete user", + "operationId": "usersDelete", + "tags": [ + "users" ], - "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" - ] - } - } + "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" } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": "users", + "cookies": false, + "type": "", + "demo": "users\/delete.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.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ] } }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}": { - "get": { - "summary": "Get repository", - "operationId": "vcsGetRepository", + "\/users\/{userId}\/email": { + "patch": { + "summary": "Update email", + "operationId": "usersUpdateEmail", "tags": [ - "vcs" + "users" ], - "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": "Update the user email by its unique ID.", "responses": { "200": { - "description": "ProviderRepository", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/providerRepository" + "$ref": "#\/components\/schemas\/user" } } } @@ -72345,70 +72511,81 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRepository", - "group": "repositories", - "weight": 571, + "method": "updateEmail", + "group": "users", "cookies": false, "type": "", - "demo": "vcs\/get-repository.md", + "demo": "users\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "x-example": "<INSTALLATION_ID>" - }, - "in": "path" - }, - { - "name": "providerRepositoryId", - "description": "Repository Id", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_REPOSITORY_ID>" + "x-example": "<USER_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" + ] + } + } + } + } } }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/branches": { - "get": { - "summary": "List repository branches", - "operationId": "vcsListRepositoryBranches", + "\/users\/{userId}\/impersonator": { + "patch": { + "summary": "Update user impersonator capability", + "operationId": "usersUpdateImpersonator", "tags": [ - "vcs" + "users" ], - "description": "Get a list of branches from a GitHub repository in your installation. This endpoint supports filtering by a search term and pagination using query strings such as `Query.limit()`, `Query.offset()`, `Query.cursorAfter()`, and `Query.cursorBefore()`. It returns branch names along with the total number of matches. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.\n", + "description": "Enable or disable whether a user can impersonate other users. When impersonation headers are used, the request runs as the target user for API behavior, while internal audit logs still attribute the action to the original impersonator and store the impersonated target details only in internal audit payload data.\n", "responses": { "200": { - "description": "Branches List", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/branchList" + "$ref": "#\/components\/schemas\/user" } } } @@ -72416,94 +72593,80 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRepositoryBranches", - "group": "repositories", - "weight": 573, + "method": "updateImpersonator", + "group": "users", "cookies": false, "type": "", - "demo": "vcs\/list-repository-branches.md", + "demo": "users\/update-impersonator.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repository-branches.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-impersonator.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "x-example": "<INSTALLATION_ID>" - }, - "in": "path" - }, - { - "name": "providerRepositoryId", - "description": "Repository Id", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_REPOSITORY_ID>" + "x-example": "<USER_ID>" }, "in": "path" - }, - { - "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, offset, cursorAfter, and cursorBefore", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "impersonator": { + "type": "boolean", + "description": "Whether the user can impersonate other users. When true, the user can browse project users to choose a target and can pass impersonation headers to act as that user. Internal audit logs still attribute impersonated actions to the original impersonator and store the target user details only in internal audit payload data.", + "x-example": false + } + }, + "required": [ + "impersonator" + ] + } + } + } + } } }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/contents": { - "get": { - "summary": "Get files and directories of a VCS repository", - "operationId": "vcsGetRepositoryContents", + "\/users\/{userId}\/jwts": { + "post": { + "summary": "Create user JWT", + "operationId": "usersCreateJWT", "tags": [ - "vcs" + "users" ], - "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": "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": "VCS Content List", + "201": { + "description": "JWT", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/vcsContentList" + "$ref": "#\/components\/schemas\/jwt" } } } @@ -72511,135 +72674,126 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRepositoryContents", - "group": "repositories", - "weight": 574, + "method": "createJWT", + "group": "sessions", "cookies": false, "type": "", - "demo": "vcs\/get-repository-contents.md", + "demo": "users\/create-jwt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository-contents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "x-example": "<INSTALLATION_ID>" - }, - "in": "path" - }, - { - "name": "providerRepositoryId", - "description": "Repository Id", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_REPOSITORY_ID>" + "x-example": "<USER_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.", + "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" + } + } + } + } + } + } } }, - "\/vcs\/github\/installations\/{installationId}\/repositories\/{repositoryId}": { - "patch": { - "summary": "Update external deployment (authorize)", - "operationId": "vcsUpdateExternalDeployments", + "\/users\/{userId}\/labels": { + "put": { + "summary": "Update user labels", + "operationId": "usersUpdateLabels", "tags": [ - "vcs" + "users" ], - "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": "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": { - "204": { - "description": "No content" + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "updateExternalDeployments", - "group": "repositories", - "weight": 1219, + "method": "updateLabels", + "group": "users", "cookies": false, "type": "", - "demo": "vcs\/update-external-deployments.md", + "demo": "users\/update-labels.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/update-external-deployments.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "x-example": "<INSTALLATION_ID>" - }, - "in": "path" - }, - { - "name": "repositoryId", - "description": "VCS Repository Id", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<REPOSITORY_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -72650,14 +72804,17 @@ "schema": { "type": "object", "properties": { - "providerPullRequestId": { - "type": "string", - "description": "GitHub Pull Request Id", - "x-example": "<PROVIDER_PULL_REQUEST_ID>" + "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": [ - "providerPullRequestId" + "labels" ] } } @@ -72665,21 +72822,21 @@ } } }, - "\/vcs\/installations": { + "\/users\/{userId}\/logs": { "get": { - "summary": "List installations", - "operationId": "vcsListInstallations", + "summary": "List user logs", + "operationId": "usersListLogs", "tags": [ - "vcs" + "users" ], - "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": "Get the user activity logs list by its unique ID.", "responses": { "200": { - "description": "Installations List", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/installationList" + "$ref": "#\/components\/schemas\/logList" } } } @@ -72687,35 +72844,46 @@ }, "deprecated": false, "x-appwrite": { - "method": "listInstallations", - "group": "installations", - "weight": 568, + "method": "listLogs", + "group": "logs", "cookies": false, "type": "", - "demo": "vcs\/list-installations.md", + "demo": "users\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "users.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-installations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "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: 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, "schema": { "type": "array", @@ -72726,17 +72894,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.", @@ -72751,21 +72908,21 @@ ] } }, - "\/vcs\/installations\/{installationId}": { + "\/users\/{userId}\/memberships": { "get": { - "summary": "Get installation", - "operationId": "vcsGetInstallation", + "summary": "List user memberships", + "operationId": "usersListMemberships", "tags": [ - "vcs" + "users" ], - "description": "Get a VCS installation by its unique ID. This endpoint returns the installation's details including its provider, organization, and configuration. ", + "description": "Get the user membership list by its unique ID.", "responses": { "200": { - "description": "Installation", + "description": "Memberships List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/installation" + "$ref": "#\/components\/schemas\/membershipList" } } } @@ -72773,150 +72930,46 @@ }, "deprecated": false, "x-appwrite": { - "method": "getInstallation", - "group": "installations", - "weight": 567, + "method": "listMemberships", + "group": "memberships", "cookies": false, "type": "", - "demo": "vcs\/get-installation.md", + "demo": "users\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "users.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-installation.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<INSTALLATION_ID>" + "x-example": "<USER_ID>" }, "in": "path" - } - ] - }, - "delete": { - "summary": "Delete installation", - "operationId": "vcsDeleteInstallation", - "tags": [ - "vcs" - ], - "description": "Delete a VCS installation by its unique ID. This endpoint removes the installation and all its associated repositories from the project.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteInstallation", - "group": "installations", - "weight": 569, - "cookies": false, - "type": "", - "demo": "vcs\/delete-installation.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/delete-installation.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "installationId", - "description": "Installation Id", - "required": true, - "schema": { - "type": "string", - "x-example": "<INSTALLATION_ID>" - }, - "in": "path" - } - ] - } - }, - "\/vectorsdb": { - "get": { - "summary": "List databases", - "operationId": "vectorsDBList", - "tags": [ - "vectorsDB" - ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", - "responses": { - "200": { - "description": "Databases List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/databaseList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "list", - "group": "vectorsdb", - "weight": 889, - "cookies": false, - "type": "", - "demo": "vectorsdb\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list.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 columns: name", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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", @@ -72950,45 +73003,106 @@ "in": "query" } ] - }, - "post": { - "summary": "Create database", - "operationId": "vectorsDBCreate", + } + }, + "\/users\/{userId}\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "usersUpdateMfa", "tags": [ - "vectorsDB" + "users" ], - "description": "Create a new Database.\n", + "description": "Enable or disable MFA on a user account.", "responses": { - "201": { - "description": "Database", + "200": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/user" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "create", - "group": "vectorsdb", - "weight": 885, + "method": "updateMfa", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/create.md", + "demo": "users\/update-mfa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create.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": [] } @@ -72999,31 +73113,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": { - "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": { + "mfa": { "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": "Enable or disable MFA.", "x-example": false } }, "required": [ - "databaseId", - "name" + "mfa" ] } } @@ -73031,69 +73146,92 @@ } } }, - "\/vectorsdb\/embeddings\/text": { - "post": { - "summary": "Create Text Embeddings", - "operationId": "vectorsDBCreateTextEmbeddings", + "\/users\/{userId}\/mfa\/authenticators\/{type}": { + "delete": { + "summary": "Delete authenticator", + "operationId": "usersDeleteMfaAuthenticator", "tags": [ - "vectorsDB" + "users" ], - "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.", + "description": "Delete an authenticator app.", "responses": { - "200": { - "description": "Embedding list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/embeddingList" - } - } - } + "204": { + "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createTextEmbeddings", - "group": "documents", - "weight": 911, + "method": "deleteMfaAuthenticator", + "group": "mfa", "cookies": false, "type": "", - "demo": "vectorsdb\/create-text-embeddings.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "users\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", - "server", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-document.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": "createTextEmbeddings", - "namespace": "vectorsDB", - "desc": "Create Text Embedding", + "name": "deleteMfaAuthenticator", + "namespace": "users", + "desc": "", "auth": { "Project": [] }, "parameters": [ - "texts", - "model" + "userId", + "type" ], "required": [ - "texts" + "userId", + "type" ], "responses": [ { - "code": 200, - "model": "#\/components\/schemas\/embeddingList" + "code": 204 } ], - "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": "vectorsdb\/create-text-embeddings.md", + "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 } ], @@ -73104,85 +73242,131 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], - "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" - ] - } - } + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "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" + }, + "in": "path" } - } + ] } }, - "\/vectorsdb\/transactions": { + "\/users\/{userId}\/mfa\/factors": { "get": { - "summary": "List transactions", - "operationId": "vectorsDBListTransactions", + "summary": "List factors", + "operationId": "usersListMfaFactors", "tags": [ - "vectorsDB" + "users" ], - "description": "List transactions across all databases.", + "description": "List the factors available on the account to be used as a MFA challange.", "responses": { "200": { - "description": "Transaction List", + "description": "MFAFactors", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transactionList" + "$ref": "#\/components\/schemas\/mfaFactors" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 916, + "method": "listMfaFactors", + "group": "mfa", "cookies": false, "type": "", - "demo": "vectorsdb\/list-transactions.md", + "demo": "users\/list-mfa-factors.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "users.read", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-transactions.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": [] } @@ -73190,139 +73374,233 @@ "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": "userId", + "description": "User ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<USER_ID>" }, - "in": "query" + "in": "path" } ] - }, - "post": { - "summary": "Create transaction", - "operationId": "vectorsDBCreateTransaction", + } + }, + "\/users\/{userId}\/mfa\/recovery-codes": { + "get": { + "summary": "Get MFA recovery codes", + "operationId": "usersGetMfaRecoveryCodes", "tags": [ - "vectorsDB" + "users" ], - "description": "Create a new transaction.", + "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": { - "201": { - "description": "Transaction", + "200": { + "description": "MFA Recovery Codes", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 912, + "method": "getMfaRecoveryCodes", + "group": "mfa", "cookies": false, "type": "", - "demo": "vectorsdb\/create-transaction.md", + "demo": "users\/get-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "users.read", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-transaction.md", - "auth": { - "Project": [] - } - }, - "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" - } + "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": [] } - } - } - }, - "\/vectorsdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "vectorsDBGetTransaction", + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "usersUpdateMfaRecoveryCodes", "tags": [ - "vectorsDB" + "users" ], - "description": "Get a transaction 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": { "200": { - "description": "Transaction", + "description": "MFA Recovery Codes", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 913, + "method": "updateMfaRecoveryCodes", + "group": "mfa", "cookies": false, "type": "", - "demo": "vectorsdb\/get-transaction.md", + "demo": "users\/update-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "users.write", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-transaction.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": [] } @@ -73330,64 +73608,115 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<USER_ID>" }, "in": "path" } ] }, "patch": { - "summary": "Update transaction", - "operationId": "vectorsDBUpdateTransaction", + "summary": "Create MFA recovery codes", + "operationId": "usersCreateMfaRecoveryCodes", "tags": [ - "vectorsDB" + "users" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "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": "Transaction", + "201": { + "description": "MFA Recovery Codes", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 914, + "method": "createMfaRecoveryCodes", + "group": "mfa", "cookies": false, "type": "", - "demo": "vectorsdb\/update-transaction.md", + "demo": "users\/create-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "users.write", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-transaction.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": [] } @@ -73395,78 +73724,61 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<USER_ID>" }, "in": "path" } + ] + } + }, + "\/users\/{userId}\/name": { + "patch": { + "summary": "Update name", + "operationId": "usersUpdateName", + "tags": [ + "users" ], - "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 - } + "description": "Update the user name by its unique ID.", + "responses": { + "200": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" } } } } - } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "vectorsDBDeleteTransaction", - "tags": [ - "vectorsDB" - ], - "description": "Delete a transaction by its unique ID.", - "responses": { - "204": { - "description": "No content" - } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 915, + "method": "updateName", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-transaction.md", + "demo": "users\/update-name.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "users.write", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", "auth": { "Project": [] } @@ -73474,40 +73786,57 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<USER_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" + ] + } + } + } + } } }, - "\/vectorsdb\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "vectorsDBCreateOperations", + "\/users\/{userId}\/password": { + "patch": { + "summary": "Update password", + "operationId": "usersUpdatePassword", "tags": [ - "vectorsDB" + "users" ], - "description": "Create multiple operations in a single transaction.", + "description": "Update the user password by its unique ID.", "responses": { - "201": { - "description": "Transaction", + "200": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/user" } } } @@ -73515,25 +73844,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", - "weight": 917, + "method": "updatePassword", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/create-operations.md", + "demo": "users\/update-password.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "users.write", "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-operations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", "auth": { "Project": [] } @@ -73541,19 +73867,17 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -73564,36 +73888,36 @@ "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" - } + "password": { + "type": "string", + "description": "New user password. Must be at least 8 chars.", + "x-example": null } - } + }, + "required": [ + "password" + ] } } } } } }, - "\/vectorsdb\/usage": { - "get": { - "summary": "Get VectorsDB usage stats", - "operationId": "vectorsDBListUsage", + "\/users\/{userId}\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "usersUpdatePhone", "tags": [ - "vectorsDB" + "users" ], - "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.", + "description": "Update the user phone by its unique ID.", "responses": { "200": { - "description": "UsageVectorsDBs", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageVectorsDBs" + "$ref": "#\/components\/schemas\/user" } } } @@ -73601,95 +73925,81 @@ }, "deprecated": false, "x-appwrite": { - "method": "listUsage", - "group": null, - "weight": 891, + "method": "updatePhone", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/list-usage.md", + "demo": "users\/update-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-usage.md", - "methods": [ - { - "name": "listUsage", - "namespace": "vectorsDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "range" - ], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/usageVectorsDBs" - } - ], - "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": "vectorsdb\/list-usage.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "userId", + "description": "User 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": "<USER_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "User phone number.", + "x-example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "number" + ] + } + } + } + } } }, - "\/vectorsdb\/{databaseId}": { + "\/users\/{userId}\/prefs": { "get": { - "summary": "Get database", - "operationId": "vectorsDBGet", + "summary": "Get user preferences", + "operationId": "usersGetPrefs", "tags": [ - "vectorsDB" + "users" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Get the user preferences by its unique ID.", "responses": { "200": { - "description": "Database", + "description": "Preferences", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/preferences" } } } @@ -73697,23 +74007,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "vectorsdb", - "weight": 886, + "method": "getPrefs", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/get.md", + "demo": "users\/get-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", "auth": { "Project": [] } @@ -73726,31 +74035,31 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<USER_ID>" }, "in": "path" } ] }, - "put": { - "summary": "Update database", - "operationId": "vectorsDBUpdate", + "patch": { + "summary": "Update user preferences", + "operationId": "usersUpdatePrefs", "tags": [ - "vectorsDB" + "users" ], - "description": "Update a database 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": { "200": { - "description": "Database", + "description": "Preferences", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/preferences" } } } @@ -73758,23 +74067,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "vectorsdb", - "weight": 887, + "method": "updatePrefs", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/update.md", + "demo": "users\/update-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", "auth": { "Project": [] } @@ -73787,12 +74095,12 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -73803,56 +74111,62 @@ "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 + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "x-example": "{}" } }, "required": [ - "name" + "prefs" ] } } } } - }, - "delete": { - "summary": "Delete database", - "operationId": "vectorsDBDelete", + } + }, + "\/users\/{userId}\/sessions": { + "get": { + "summary": "List user sessions", + "operationId": "usersListSessions", "tags": [ - "vectorsDB" + "users" ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "description": "Get the user sessions list by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Sessions List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/sessionList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "vectorsdb", - "weight": 888, + "method": "listSessions", + "group": "sessions", "cookies": false, "type": "", - "demo": "vectorsdb\/delete.md", + "demo": "users\/list-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "users.read", + "sessions.read" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", "auth": { "Project": [] } @@ -73865,33 +74179,42 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "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, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/vectorsdb\/{databaseId}\/collections": { - "get": { - "summary": "List collections", - "operationId": "vectorsDBListCollections", + }, + "post": { + "summary": "Create session", + "operationId": "usersCreateSession", "tags": [ - "vectorsDB" + "users" ], - "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "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": { - "200": { - "description": "VectorsDB Collections List", + "201": { + "description": "Session", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/vectorsdbCollectionList" + "$ref": "#\/components\/schemas\/session" } } } @@ -73899,23 +74222,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCollections", - "group": "collections", - "weight": 896, + "method": "createSession", + "group": "sessions", "cookies": false, "type": "", - "demo": "vectorsdb\/list-collections.md", + "demo": "users\/create-session.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": [ + "users.write", + "sessions.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-collections.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", "auth": { "Project": [] } @@ -73928,90 +74253,50 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database 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": "<DATABASE_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: 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" } ] }, - "post": { - "summary": "Create collection", - "operationId": "vectorsDBCreateCollection", + "delete": { + "summary": "Delete user sessions", + "operationId": "usersDeleteSessions", "tags": [ - "vectorsDB" + "users" ], - "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.", + "description": "Delete all user's sessions by using the user's unique ID.", "responses": { - "201": { - "description": "VectorsDB Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/vectorsdbCollection" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createCollection", - "group": "collections", - "weight": 892, + "method": "deleteSessions", + "group": "sessions", "cookies": false, "type": "", - "demo": "vectorsdb\/create-collection.md", + "demo": "users\/delete-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": [ + "users.write", + "sessions.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", "auth": { "Project": [] } @@ -74024,107 +74309,52 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<USER_ID>" }, "in": "path" } - ], - "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": "<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": [ - "collectionId", - "name", - "dimension" - ] - } - } - } - } + ] } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}": { - "get": { - "summary": "Get collection", - "operationId": "vectorsDBGetCollection", + "\/users\/{userId}\/sessions\/{sessionId}": { + "delete": { + "summary": "Delete user session", + "operationId": "usersDeleteSession", "tags": [ - "vectorsDB" + "users" ], - "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "description": "Delete a user sessions by its unique ID.", "responses": { - "200": { - "description": "VectorsDB Collection", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/vectorsdbCollection" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getCollection", - "group": "collections", - "weight": 893, + "method": "deleteSession", + "group": "sessions", "cookies": false, "type": "", - "demo": "vectorsdb\/get-collection.md", + "demo": "users\/delete-session.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": [ + "users.write", + "sessions.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", "auth": { "Project": [] } @@ -74137,41 +74367,43 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<USER_ID>" }, "in": "path" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "sessionId", + "description": "Session ID.", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "<SESSION_ID>" }, "in": "path" } ] - }, - "put": { - "summary": "Update collection", - "operationId": "vectorsDBUpdateCollection", + } + }, + "\/users\/{userId}\/status": { + "patch": { + "summary": "Update user status", + "operationId": "usersUpdateStatus", "tags": [ - "vectorsDB" + "users" ], - "description": "Update a collection 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": { "200": { - "description": "VectorsDB Collection", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/vectorsdbCollection" + "$ref": "#\/components\/schemas\/user" } } } @@ -74179,23 +74411,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateCollection", - "group": "collections", - "weight": 894, + "method": "updateStatus", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/update-collection.md", + "demo": "users\/update-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", "auth": { "Project": [] } @@ -74208,22 +74439,12 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -74234,75 +74455,59 @@ "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": { + "status": { "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.", + "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", "x-example": false } }, "required": [ - "name" + "status" ] } } } } - }, - "delete": { - "summary": "Delete collection", - "operationId": "vectorsDBDeleteCollection", + } + }, + "\/users\/{userId}\/targets": { + "get": { + "summary": "List user targets", + "operationId": "usersListTargets", "tags": [ - "vectorsDB" + "users" ], - "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "List the messaging targets that are associated with a user.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Target list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/targetList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteCollection", - "group": "collections", - "weight": 895, + "method": "listTargets", + "group": "targets", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-collection.md", + "demo": "users\/list-targets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "targets.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-targets.md", "auth": { "Project": [] } @@ -74315,164 +74520,55 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<USER_ID>" }, "in": "path" }, { - "name": "collectionId", - "description": "Collection 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, providerId, identifier, providerType", + "required": false, "schema": { - "type": "string", - "x-example": "<COLLECTION_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" - } - ] - } - }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents": { - "get": { - "summary": "List documents", - "operationId": "vectorsDBListDocuments", - "tags": [ - "vectorsDB" - ], - "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listDocuments", - "group": "documents", - "weight": 906, - "cookies": false, - "type": "", - "demo": "vectorsdb\/list-documents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-documents.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "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.", - "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" + "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 document", - "operationId": "vectorsDBCreateDocument", + "summary": "Create user target", + "operationId": "usersCreateTarget", "tags": [ - "vectorsDB" + "users" ], - "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.", + "description": "Create a messaging target.", "responses": { "201": { - "description": "Document", + "description": "Target", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/target" } } } @@ -74480,84 +74576,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDocument", - "group": "documents", - "weight": 902, + "method": "createTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "vectorsdb\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "users\/create-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", "platforms": [ - "console", - "client", "server", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-document.md", - "methods": [ - { - "name": "createDocument", - "namespace": "vectorsDB", - "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": "vectorsdb\/create-document.md", - "public": true - }, - { - "name": "createDocuments", - "namespace": "vectorsDB", - "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": "vectorsdb\/create-documents.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", "auth": { "Project": [] } @@ -74565,29 +74599,17 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "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). Make sure to define attributes before creating documents.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -74598,57 +74620,66 @@ "schema": { "type": "object", "properties": { - "documentId": { + "targetId": { "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>" + "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>" }, - "data": { - "type": "object", - "description": "Document data as JSON object.", - "x-example": "{\"embeddings\": [0.12, -0.55, 0.88, 1.02], \"metadata\": {\"key\":\"value\"} }" + "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" }, - "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" - } + "identifier": { + "type": "string", + "description": "The target identifier (token, email, phone etc.)", + "x-example": "<IDENTIFIER>" }, - "documents": { - "type": "array", - "description": "Array of documents data as JSON objects.", - "x-example": null, - "items": { - "type": "object" - } + "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>" }, - "transactionId": { + "name": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>" + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "targetId", + "providerType", + "identifier" + ] } } } } - }, - "put": { - "summary": "Upsert documents", - "operationId": "vectorsDBUpsertDocuments", + } + }, + "\/users\/{userId}\/targets\/{targetId}": { + "get": { + "summary": "Get user target", + "operationId": "usersGetTarget", "tags": [ - "vectorsDB" + "users" ], - "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", + "description": "Get a user's push notification target by ID.", "responses": { - "201": { - "description": "Documents List", + "200": { + "description": "Target", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/documentList" + "$ref": "#\/components\/schemas\/target" } } } @@ -74656,53 +74687,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsertDocuments", - "group": "documents", - "weight": 909, + "method": "getTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "vectorsdb\/upsert-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "users\/get-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/upsert-documents.md", - "methods": [ - { - "name": "upsertDocuments", - "namespace": "vectorsDB", - "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": "vectorsdb\/upsert-documents.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", "auth": { "Project": [] } @@ -74715,68 +74715,41 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<USER_ID>" }, "in": "path" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "targetId", + "description": "Target ID.", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "<TARGET_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" - ] - } - } - } - } + ] }, "patch": { - "summary": "Update documents", - "operationId": "vectorsDBUpdateDocuments", + "summary": "Update user target", + "operationId": "usersUpdateTarget", "tags": [ - "vectorsDB" + "users" ], - "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.", + "description": "Update a messaging target.", "responses": { "200": { - "description": "Documents List", + "description": "Target", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/documentList" + "$ref": "#\/components\/schemas\/target" } } } @@ -74784,23 +74757,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDocuments", - "group": "documents", - "weight": 908, + "method": "updateTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "vectorsdb\/update-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "users\/update-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", "auth": { "Project": [] } @@ -74813,22 +74785,22 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<USER_ID>" }, "in": "path" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "targetId", + "description": "Target ID.", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "<TARGET_ID>" }, "in": "path" } @@ -74839,23 +74811,23 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", - "x-example": "{}" + "identifier": { + "type": "string", + "description": "The target identifier (token, email, phone etc.)", + "default": "", + "x-example": "<IDENTIFIER>" }, - "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" - } + "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>" }, - "transactionId": { + "name": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>" + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "default": "", + "x-example": "<NAME>" } } } @@ -74864,43 +74836,35 @@ } }, "delete": { - "summary": "Delete documents", - "operationId": "vectorsDBDeleteDocuments", + "summary": "Delete user target", + "operationId": "usersDeleteTarget", "tags": [ - "vectorsDB" + "users" ], - "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "description": "Delete a messaging target.", "responses": { - "200": { - "description": "Documents List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/documentList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "deleteDocuments", - "group": "documents", - "weight": 910, + "method": "deleteTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-documents.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "users\/delete-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", "auth": { "Project": [] } @@ -74913,67 +74877,43 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<USER_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).", + "name": "targetId", + "description": "Target ID.", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "<TARGET_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>" - } - } - } - } - } - } + ] } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { - "get": { - "summary": "Get document", - "operationId": "vectorsDBGetDocument", + "\/users\/{userId}\/tokens": { + "post": { + "summary": "Create token", + "operationId": "usersCreateToken", "tags": [ - "vectorsDB" + "users" ], - "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "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": "Document", + "201": { + "description": "Token", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/token" } } } @@ -74981,25 +74921,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDocument", - "group": "documents", - "weight": 905, + "method": "createToken", + "group": "sessions", "cookies": false, "type": "", - "demo": "vectorsdb\/get-document.md", + "demo": "users\/create-token.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", "auth": { "Project": [] } @@ -75007,81 +74944,63 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "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": "documentId", - "description": "Document ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DOCUMENT_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.", - "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" } - ] - }, - "put": { - "summary": "Upsert a document", - "operationId": "vectorsDBUpsertDocument", + ], + "requestBody": { + "content": { + "application\/json": { + "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\/{userId}\/verification": { + "patch": { + "summary": "Update email verification", + "operationId": "usersUpdateEmailVerification", "tags": [ - "vectorsDB" + "users" ], - "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.", + "description": "Update the user email verification status by its unique ID.", "responses": { - "201": { - "description": "Document", + "200": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/user" } } } @@ -75089,57 +75008,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsertDocument", - "group": "documents", - "weight": 904, + "method": "updateEmailVerification", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "users\/update-email-verification.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\/vectorsdb\/upsert-document.md", - "methods": [ - { - "name": "upsertDocument", - "namespace": "vectorsDB", - "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": "vectorsdb\/upsert-document.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", "auth": { "Project": [] } @@ -75147,39 +75031,17 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "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.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DOCUMENT_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -75190,44 +75052,36 @@ "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>" + "emailVerification": { + "type": "boolean", + "description": "User email verification status.", + "x-example": false } - } + }, + "required": [ + "emailVerification" + ] } } } } - }, + } + }, + "\/users\/{userId}\/verification\/phone": { "patch": { - "summary": "Update document", - "operationId": "vectorsDBUpdateDocument", + "summary": "Update phone verification", + "operationId": "usersUpdatePhoneVerification", "tags": [ - "vectorsDB" + "users" ], - "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Update the user phone verification status by its unique ID.", "responses": { "200": { - "description": "Document", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/document" + "$ref": "#\/components\/schemas\/user" } } } @@ -75235,25 +75089,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDocument", - "group": "documents", - "weight": 903, + "method": "updatePhoneVerification", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "users\/update-phone-verification.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\/vectorsdb\/update-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", "auth": { "Project": [] } @@ -75261,39 +75112,17 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "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.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<DOCUMENT_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -75304,103 +75133,89 @@ "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>" + "phoneVerification": { + "type": "boolean", + "description": "User phone verification status.", + "x-example": false } - } + }, + "required": [ + "phoneVerification" + ] } } } } - }, - "delete": { - "summary": "Delete document", - "operationId": "vectorsDBDeleteDocument", + } + }, + "\/vcs\/github\/installations\/{installationId}\/detections": { + "post": { + "summary": "Create repository detection", + "operationId": "vcsCreateRepositoryDetection", "tags": [ - "vectorsDB" + "vcs" ], - "description": "Delete a document by its unique ID.", + "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": { - "204": { - "description": "No content" + "200": { + "description": "DetectionRuntime, or DetectionFramework", + "content": { + "application\/json": { + "schema": { + "oneOf": [ + { + "$ref": "#\/components\/schemas\/detectionRuntime" + }, + { + "$ref": "#\/components\/schemas\/detectionFramework" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "runtime": "#\/components\/schemas\/detectionRuntime", + "framework": "#\/components\/schemas\/detectionFramework" + } + } + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDocument", - "group": "documents", - "weight": 907, + "method": "createRepositoryDetection", + "group": "repositories", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "vcs\/create-repository-detection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.write", "platforms": [ - "console", - "client", - "server", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository-detection.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Project": [] } ], "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": "documentId", - "description": "Document ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<DOCUMENT_ID>" + "x-example": "<INSTALLATION_ID>" }, "in": "path" } @@ -75411,33 +75226,67 @@ "schema": { "type": "object", "properties": { - "transactionId": { + "providerRepositoryId": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>" + "description": "Repository Id", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "type": { + "type": "string", + "description": "Detector type. Must be one of the following: runtime, framework", + "x-example": "runtime", + "enum": [ + "runtime", + "framework" + ], + "x-enum-name": "VCSDetectionType" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to Root Directory", + "default": "", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" } - } + }, + "required": [ + "providerRepositoryId", + "type" + ] } } } } } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "\/vcs\/github\/installations\/{installationId}\/providerRepositories": { "get": { - "summary": "List indexes", - "operationId": "vectorsDBListIndexes", + "summary": "List repositories", + "operationId": "vcsListRepositories", "tags": [ - "vectorsDB" + "vcs" ], - "description": "List indexes in the collection.", + "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": "Indexes List", + "description": "Runtime Provider Repositories List, or Framework Provider Repositories List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/indexList" + "oneOf": [ + { + "$ref": "#\/components\/schemas\/providerRepositoryRuntimeList" + }, + { + "$ref": "#\/components\/schemas\/providerRepositoryFrameworkList" + } + ], + "discriminator": { + "propertyName": "type", + "mapping": { + "runtime": "#\/components\/schemas\/providerRepositoryRuntimeList", + "framework": "#\/components\/schemas\/providerRepositoryFrameworkList" + } + } } } } @@ -75445,94 +75294,96 @@ }, "deprecated": false, "x-appwrite": { - "method": "listIndexes", - "group": "indexes", - "weight": 901, + "method": "listRepositories", + "group": "repositories", "cookies": false, "type": "", - "demo": "vectorsdb\/list-indexes.md", + "demo": "vcs\/list-repositories.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-indexes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repositories.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<INSTALLATION_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).", + "name": "type", + "description": "Detector type. Must be one of the following: runtime, framework", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "runtime", + "enum": [ + "runtime", + "framework" + ], + "x-enum-name": "VCSDetectionType" }, - "in": "path" + "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). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, type, status, attributes, error", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "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.", + "name": "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" } ] }, "post": { - "summary": "Create index", - "operationId": "vectorsDBCreateIndex", + "summary": "Create repository", + "operationId": "vcsCreateRepository", "tags": [ - "vectorsDB" + "vcs" ], - "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`.", + "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": { - "202": { - "description": "Index", + "200": { + "description": "ProviderRepository", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/index" + "$ref": "#\/components\/schemas\/providerRepository" } } } @@ -75540,51 +75391,38 @@ }, "deprecated": false, "x-appwrite": { - "method": "createIndex", - "group": "indexes", - "weight": 898, + "method": "createRepository", + "group": "repositories", "cookies": false, "type": "", - "demo": "vectorsdb\/create-index.md", + "demo": "vcs\/create-repository.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "vcs.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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).", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "<INSTALLATION_ID>" }, "in": "path" } @@ -75595,61 +75433,20 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Index Key.", - "x-example": null - }, - "type": { + "name": { "type": "string", - "description": "Index type.", - "x-example": "hnsw_euclidean", - "enum": [ - "hnsw_euclidean", - "hnsw_dot", - "hnsw_cosine", - "object", - "key", - "unique" - ], - "x-enum-name": "VectorsDBIndexType", - "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": [] - } + "description": "Repository name (slug)", + "x-example": "<NAME>" }, - "lengths": { - "type": "array", - "description": "Length of index. Maximum of 100", - "x-example": null, - "items": { - "type": "integer" - } + "private": { + "type": "boolean", + "description": "Mark repository public or private", + "x-example": false } }, "required": [ - "key", - "type", - "attributes" + "name", + "private" ] } } @@ -75657,21 +75454,21 @@ } } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}": { "get": { - "summary": "Get index", - "operationId": "vectorsDBGetIndex", + "summary": "Get repository", + "operationId": "vcsGetRepository", "tags": [ - "vectorsDB" + "vcs" ], - "description": "Get index by ID.", + "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": "Index", + "description": "ProviderRepository", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/index" + "$ref": "#\/components\/schemas\/providerRepository" } } } @@ -75679,154 +75476,163 @@ }, "deprecated": false, "x-appwrite": { - "method": "getIndex", - "group": "indexes", - "weight": 899, + "method": "getRepository", + "group": "repositories", "cookies": false, "type": "", - "demo": "vectorsdb\/get-index.md", + "demo": "vcs\/get-repository.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<INSTALLATION_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).", + "name": "providerRepositoryId", + "description": "Repository Id", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<PROVIDER_REPOSITORY_ID>" }, "in": "path" } ] - }, - "delete": { - "summary": "Delete index", - "operationId": "vectorsDBDeleteIndex", + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/branches": { + "get": { + "summary": "List repository branches", + "operationId": "vcsListRepositoryBranches", "tags": [ - "vectorsDB" + "vcs" ], - "description": "Delete an index.", + "description": "Get a list of branches from a GitHub repository in your installation. This endpoint supports filtering by a search term and pagination using query strings such as `Query.limit()`, `Query.offset()`, `Query.cursorAfter()`, and `Query.cursorBefore()`. It returns branch names along with the total number of matches. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Branches List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/branchList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteIndex", - "group": "indexes", - "weight": 900, + "method": "listRepositoryBranches", + "group": "repositories", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-index.md", + "demo": "vcs\/list-repository-branches.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repository-branches.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<INSTALLATION_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).", + "name": "providerRepositoryId", + "description": "Repository Id", "required": true, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "<PROVIDER_REPOSITORY_ID>" }, "in": "path" }, { - "name": "key", - "description": "Index Key.", - "required": true, + "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": "path" + "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, offset, cursorAfter, and cursorBefore", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } ] } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/usage": { + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/contents": { "get": { - "summary": "Get collection usage stats", - "operationId": "vectorsDBGetCollectionUsage", + "summary": "Get files and directories of a VCS repository", + "operationId": "vcsGetRepositoryContents", "tags": [ - "vectorsDB" + "vcs" ], - "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.", + "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": { "200": { - "description": "UsageCollection", + "description": "VCS Content List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageCollection" + "$ref": "#\/components\/schemas\/vcsContentList" } } } @@ -75834,22 +75640,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCollectionUsage", - "group": null, - "weight": 897, + "method": "getRepositoryContents", + "group": "repositories", "cookies": false, "type": "", - "demo": "vectorsdb\/get-collection-usage.md", + "demo": "vcs\/get-repository-contents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "vcs.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-collection-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository-contents.md", "auth": { "Project": [] } @@ -75861,114 +75666,80 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<INSTALLATION_ID>" }, "in": "path" }, { - "name": "range", - "description": "Date range.", + "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": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "x-example": "<PROVIDER_ROOT_DIRECTORY>", + "default": "" }, "in": "query" }, { - "name": "collectionId", - "description": "Collection ID.", - "required": true, + "name": "providerReference", + "description": "Git reference (branch, tag, commit) to get contents from", + "required": false, "schema": { "type": "string", - "x-example": "<COLLECTION_ID>" + "x-example": "<PROVIDER_REFERENCE>", + "default": "" }, - "in": "path" + "in": "query" } ] } }, - "\/vectorsdb\/{databaseId}\/usage": { - "get": { - "summary": "Get VectorsDB usage stats", - "operationId": "vectorsDBGetUsage", + "\/vcs\/github\/installations\/{installationId}\/repositories\/{repositoryId}": { + "patch": { + "summary": "Update external deployment (authorize)", + "operationId": "vcsUpdateExternalDeployments", "tags": [ - "vectorsDB" + "vcs" ], - "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.", + "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": "UsageVectorsDB", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageVectorsDB" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 890, + "method": "updateExternalDeployments", + "group": "repositories", "cookies": false, "type": "", - "demo": "vectorsdb\/get-usage.md", + "demo": "vcs\/update-external-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "vcs.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-database-usage.md", - "methods": [ - { - "name": "getUsage", - "namespace": "vectorsDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "range" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/usageVectorsDB" - } - ], - "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": "vectorsdb\/get-usage.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/update-external-deployments.md", "auth": { "Project": [] } @@ -75980,55 +75751,62 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<INSTALLATION_ID>" }, "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, + "name": "repositoryId", + "description": "VCS Repository 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": "<REPOSITORY_ID>" }, - "in": "query" + "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" + ] + } + } + } + } } }, - "\/webhooks": { + "\/vcs\/installations": { "get": { - "summary": "List webhooks", - "operationId": "webhooksList", + "summary": "List installations", + "operationId": "vcsListInstallations", "tags": [ - "webhooks" + "vcs" ], - "description": "Get a list of all webhooks belonging to the project. You can use the query params to filter your results.", + "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": "Webhooks List", + "description": "Installations List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhookList" + "$ref": "#\/components\/schemas\/installationList" } } } @@ -76036,36 +75814,34 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": null, - "weight": 578, + "method": "listInstallations", + "group": "installations", "cookies": false, "type": "", - "demo": "webhooks\/list.md", + "demo": "vcs\/list-installations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.read", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-installations.md", "auth": { "Project": [] } }, "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, url, authUsername, tls, events, enabled, logs, attempts", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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", @@ -76076,6 +75852,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.", @@ -76088,21 +75875,23 @@ "in": "query" } ] - }, - "post": { - "summary": "Create webhook", - "operationId": "webhooksCreate", + } + }, + "\/vcs\/installations\/{installationId}": { + "get": { + "summary": "Get installation", + "operationId": "vcsGetInstallation", "tags": [ - "webhooks" + "vcs" ], - "description": "Create a new webhook. Use this endpoint to configure a URL that will receive events from Appwrite when specific events occur.", + "description": "Get a VCS installation by its unique ID. This endpoint returns the installation's details including its provider, organization, and configuration. ", "responses": { - "201": { - "description": "Webhook", + "200": { + "description": "Installation", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/installation" } } } @@ -76110,115 +75899,110 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": null, - "weight": 577, + "method": "getInstallation", + "group": "installations", "cookies": false, "type": "", - "demo": "webhooks\/create.md", + "demo": "vcs\/get-installation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.write", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-installation.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "webhookId": { - "type": "string", - "description": "Webhook ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<WEBHOOK_ID>" - }, - "url": { - "type": "string", - "description": "Webhook URL.", - "x-example": null - }, - "name": { - "type": "string", - "description": "Webhook name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "x-example": null, - "items": { - "type": "string" - } - }, - "enabled": { - "type": "boolean", - "description": "Enable or disable a webhook.", - "x-example": false - }, - "tls": { - "type": "boolean", - "description": "Certificate verification, false for disabled or true for enabled.", - "x-example": false - }, - "authUsername": { - "type": "string", - "description": "Webhook HTTP user. Max length: 256 chars.", - "x-example": "<AUTH_USERNAME>" - }, - "authPassword": { - "type": "string", - "description": "Webhook HTTP password. Max length: 256 chars.", - "x-example": "<AUTH_PASSWORD>" - }, - "secret": { - "type": "string", - "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", - "x-example": "<SECRET>", - "x-nullable": true - } - }, - "required": [ - "webhookId", - "url", - "name", - "events" - ] - } - } + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "x-example": "<INSTALLATION_ID>" + }, + "in": "path" } - } + ] + }, + "delete": { + "summary": "Delete installation", + "operationId": "vcsDeleteInstallation", + "tags": [ + "vcs" + ], + "description": "Delete a VCS installation by its unique ID. This endpoint removes the installation and all its associated repositories from the project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteInstallation", + "group": "installations", + "cookies": false, + "type": "", + "demo": "vcs\/delete-installation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/delete-installation.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "x-example": "<INSTALLATION_ID>" + }, + "in": "path" + } + ] } }, - "\/webhooks\/{webhookId}": { + "\/vectorsdb": { "get": { - "summary": "Get webhook", - "operationId": "webhooksGet", + "summary": "List databases", + "operationId": "vectorsDBList", "tags": [ - "webhooks" + "vectorsDB" ], - "description": "Get a webhook by its unique ID. This endpoint returns details about a specific webhook configured for a project. ", + "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": "Webhook", + "description": "Databases List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/databaseList" } } } @@ -76226,22 +76010,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 579, + "method": "list", + "group": "vectorsdb", "cookies": false, "type": "", - "demo": "webhooks\/get.md", + "demo": "vectorsdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list.md", "auth": { "Project": [] } @@ -76254,31 +76038,45 @@ ], "parameters": [ { - "name": "webhookId", - "description": "Webhook 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": "<WEBHOOK_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" } ] }, - "put": { - "summary": "Update webhook", - "operationId": "webhooksUpdate", + "post": { + "summary": "Create database", + "operationId": "vectorsDBCreate", "tags": [ - "webhooks" + "vectorsDB" ], - "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 new Database.\n", "responses": { - "200": { - "description": "Webhook", + "201": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/database" } } } @@ -76286,22 +76084,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": null, - "weight": 581, + "method": "create", + "group": "vectorsdb", "cookies": false, "type": "", - "demo": "webhooks\/update.md", + "demo": "vectorsdb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create.md", "auth": { "Project": [] } @@ -76312,103 +76110,189 @@ "Key": [] } ], - "parameters": [ - { - "name": "webhookId", - "description": "Webhook ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<WEBHOOK_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { + "databaseId": { "type": "string", - "description": "Webhook name. Max length: 128 chars.", - "x-example": "<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.", + "x-example": "<DATABASE_ID>" }, - "url": { + "name": { "type": "string", - "description": "Webhook URL.", - "x-example": null + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "events": { + "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" + ] + } + } + } + } + } + }, + "\/vectorsdb\/embeddings\/text": { + "post": { + "summary": "Create Text Embeddings", + "operationId": "vectorsDBCreateTextEmbeddings", + "tags": [ + "vectorsDB" + ], + "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": "Embedding list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/embeddingList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTextEmbeddings", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-document.md", + "methods": [ + { + "name": "createTextEmbeddings", + "namespace": "vectorsDB", + "desc": "Create Text Embedding", + "auth": { + "Project": [] + }, + "parameters": [ + "texts", + "model" + ], + "required": [ + "texts" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/embeddingList" + } + ], + "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": "vectorsdb\/create-text-embeddings.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "texts": { "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", + "description": "Array of text to generate embeddings.", "x-example": null, "items": { "type": "string" } }, - "enabled": { - "type": "boolean", - "description": "Enable or disable a webhook.", - "x-example": false - }, - "tls": { - "type": "boolean", - "description": "Certificate verification, false for disabled or true for enabled.", - "x-example": false - }, - "authUsername": { - "type": "string", - "description": "Webhook HTTP user. Max length: 256 chars.", - "x-example": "<AUTH_USERNAME>" - }, - "authPassword": { + "model": { "type": "string", - "description": "Webhook HTTP password. Max length: 256 chars.", - "x-example": "<AUTH_PASSWORD>" + "description": "The embedding model to use for generating vector embeddings.", + "default": "embeddinggemma", + "x-example": "embeddinggemma", + "enum": [ + "embeddinggemma" + ], + "x-enum-name": "EmbeddingModel" } }, "required": [ - "name", - "url", - "events" + "texts" ] } } } } - }, - "delete": { - "summary": "Delete webhook", - "operationId": "webhooksDelete", + } + }, + "\/vectorsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorsDBListTransactions", "tags": [ - "webhooks" + "vectorsDB" ], - "description": "Delete a webhook by its unique ID. Once deleted, the webhook will no longer receive project events. ", + "description": "List transactions across all databases.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": null, - "weight": 580, + "method": "listTransactions", + "group": "transactions", "cookies": false, "type": "", - "demo": "webhooks\/delete.md", + "demo": "vectorsdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.write", + "scope": "documents.read", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-transactions.md", "auth": { "Project": [] } @@ -76416,38 +76300,41 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "webhookId", - "description": "Webhook 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": "<WEBHOOK_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" } ] - } - }, - "\/webhooks\/{webhookId}\/secret": { - "patch": { - "summary": "Update webhook secret key", - "operationId": "webhooksUpdateSecret", + }, + "post": { + "summary": "Create transaction", + "operationId": "vectorsDBCreateTransaction", "tags": [ - "webhooks" + "vectorsDB" ], - "description": "Update the webhook signing key. This endpoint can be used to regenerate the signing key used to sign and validate payload deliveries for a specific webhook.", + "description": "Create a new transaction.", "responses": { - "200": { - "description": "Webhook", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -76455,22 +76342,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSecret", - "group": null, - "weight": 582, + "method": "createTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "webhooks\/update-secret.md", + "demo": "vectorsdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.write", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-transaction.md", "auth": { "Project": [] } @@ -76478,19 +76367,9 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "webhookId", - "description": "Webhook ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<WEBHOOK_ID>" - }, - "in": "path" + "Key": [], + "Session": [], + "JWT": [] } ], "requestBody": { @@ -76499,11 +76378,12 @@ "schema": { "type": "object", "properties": { - "secret": { - "type": "string", - "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", - "x-example": "<SECRET>", - "x-nullable": true + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" } } } @@ -76511,32 +76391,3252 @@ } } } - } - }, - "tags": [ - { - "name": "account", - "description": "The Account service allows you to authenticate and manage a user account." - }, - { - "name": "avatars", - "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." - }, - { - "name": "databases", - "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" - }, - { - "name": "tablesdb", - "description": "The TablesDB service allows you to create structured tables of columns, query and filter lists of rows" - }, - { - "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location." - }, - { - "name": "health", - "description": "The Health service allows you to both validate and monitor your Appwrite server's health." + }, + "\/vectorsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "vectorsDBGetTransaction", + "tags": [ + "vectorsDB" + ], + "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", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "vectorsDBUpdateTransaction", + "tags": [ + "vectorsDB" + ], + "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", + "cookies": false, + "type": "", + "demo": "vectorsdb\/update-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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "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": "vectorsDBDeleteTransaction", + "tags": [ + "vectorsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteTransaction", + "group": "transactions", + "cookies": false, + "type": "", + "demo": "vectorsdb\/delete-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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "vectorsDBCreateOperations", + "tags": [ + "vectorsDB" + ], + "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", + "cookies": false, + "type": "", + "demo": "vectorsdb\/create-operations.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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-operations.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TRANSACTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "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" + } + } + } + } + } + } + } + } + }, + "\/vectorsdb\/usage": { + "get": { + "summary": "Get VectorsDB usage stats", + "operationId": "vectorsDBListUsage", + "tags": [ + "vectorsDB" + ], + "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": "UsageVectorsDBs", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageVectorsDBs" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listUsage", + "group": null, + "cookies": false, + "type": "", + "demo": "vectorsdb\/list-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-usage.md", + "methods": [ + { + "name": "listUsage", + "namespace": "vectorsDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "range" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/usageVectorsDBs" + } + ], + "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": "vectorsdb\/list-usage.md", + "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" + } + ] + } + }, + "\/vectorsdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "vectorsDBGet", + "tags": [ + "vectorsDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "get", + "group": "vectorsdb", + "cookies": false, + "type": "", + "demo": "vectorsdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "vectorsDBUpdate", + "tags": [ + "vectorsDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "update", + "group": "vectorsdb", + "cookies": false, + "type": "", + "demo": "vectorsdb\/update.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\/vectorsdb\/update.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "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": { + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "vectorsDBDelete", + "tags": [ + "vectorsDB" + ], + "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": "vectorsdb", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/delete.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "vectorsDBListCollections", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "VectorsDB Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollectionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCollections", + "group": "collections", + "cookies": false, + "type": "", + "demo": "vectorsdb\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-collections.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "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: 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" + } + ] + }, + "post": { + "summary": "Create collection", + "operationId": "vectorsDBCreateCollection", + "tags": [ + "vectorsDB" + ], + "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": "VectorsDB Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createCollection", + "group": "collections", + "cookies": false, + "type": "", + "demo": "vectorsdb\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-collection.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "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": { + "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": "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" + ] + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "vectorsDBGetCollection", + "tags": [ + "vectorsDB" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "VectorsDB Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getCollection", + "group": "collections", + "cookies": false, + "type": "", + "demo": "vectorsdb\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-collection.md", + "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" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "vectorsDBUpdateCollection", + "tags": [ + "vectorsDB" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "VectorsDB Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectorsdbCollection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateCollection", + "group": "collections", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-collection.md", + "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).", + "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" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "vectorsDBDeleteCollection", + "tags": [ + "vectorsDB" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteCollection", + "group": "collections", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-collection.md", + "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" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "vectorsDBListDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listDocuments", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-documents.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "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.", + "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" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "vectorsDBCreateDocument", + "tags": [ + "vectorsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/create-document.md", + "methods": [ + { + "name": "createDocument", + "namespace": "vectorsDB", + "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": "vectorsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "vectorsDB", + "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": "vectorsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "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). 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.", + "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).", + "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.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "vectorsDBUpsertDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "upsertDocuments", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/upsert-documents.md", + "methods": [ + { + "name": "upsertDocuments", + "namespace": "vectorsDB", + "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": "vectorsdb\/upsert-documents.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": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "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" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "vectorsDBUpdateDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateDocuments", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/update-documents.md", + "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": { + "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.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "vectorsDBDeleteDocuments", + "tags": [ + "vectorsDB" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDocuments", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/delete-documents.md", + "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. 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": { + "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.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "vectorsDBGetDocument", + "tags": [ + "vectorsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-document.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "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": "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" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "vectorsDBUpsertDocument", + "tags": [ + "vectorsDB" + ], + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "upsertDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/upsert-document.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorsDB", + "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": "vectorsdb\/upsert-document.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "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" + } + ], + "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.", + "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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } + }, + "patch": { + "summary": "Update document", + "operationId": "vectorsDBUpdateDocument", + "tags": [ + "vectorsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/update-document.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "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" + } + ], + "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.", + "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).", + "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": "vectorsDBDeleteDocument", + "tags": [ + "vectorsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/delete-document.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "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": "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>" + } + } + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "vectorsDBListIndexes", + "tags": [ + "vectorsDB" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listIndexes", + "group": "indexes", + "cookies": false, + "type": "", + "demo": "vectorsdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/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": "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" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "vectorsDBCreateIndex", + "tags": [ + "vectorsDB" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createIndex", + "group": "indexes", + "cookies": false, + "type": "", + "demo": "vectorsdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-index.md", + "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. 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": "hnsw_euclidean", + "enum": [ + "hnsw_euclidean", + "hnsw_dot", + "hnsw_cosine", + "object", + "key", + "unique" + ], + "x-enum-name": "VectorsDBIndexType" + }, + "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.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy" + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], + "x-example": null, + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "vectorsDBGetIndex", + "tags": [ + "vectorsDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/index" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getIndex", + "group": "indexes", + "cookies": false, + "type": "", + "demo": "vectorsdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-index.md", + "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. 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" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "vectorsDBDeleteIndex", + "tags": [ + "vectorsDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteIndex", + "group": "indexes", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/delete-index.md", + "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. 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" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/usage": { + "get": { + "summary": "Get collection usage stats", + "operationId": "vectorsDBGetCollectionUsage", + "tags": [ + "vectorsDB" + ], + "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": "UsageCollection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageCollection" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getCollectionUsage", + "group": null, + "cookies": false, + "type": "", + "demo": "vectorsdb\/get-collection-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-collection-usage.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "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": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/usage": { + "get": { + "summary": "Get VectorsDB usage stats", + "operationId": "vectorsDBGetUsage", + "tags": [ + "vectorsDB" + ], + "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": { + "200": { + "description": "UsageVectorsDB", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageVectorsDB" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getUsage", + "group": null, + "cookies": false, + "type": "", + "demo": "vectorsdb\/get-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-database-usage.md", + "methods": [ + { + "name": "getUsage", + "namespace": "vectorsDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "range" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/usageVectorsDB" + } + ], + "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": "vectorsdb\/get-usage.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "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" + } + ] + } + }, + "\/webhooks": { + "get": { + "summary": "List webhooks", + "operationId": "webhooksList", + "tags": [ + "webhooks" + ], + "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": "list", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.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, url, authUsername, tls, events, enabled, logs, attempts", + "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 webhook", + "operationId": "webhooksCreate", + "tags": [ + "webhooks" + ], + "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": "create", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "webhookId": { + "type": "string", + "description": "Webhook ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<WEBHOOK_ID>" + }, + "url": { + "type": "string", + "description": "Webhook URL.", + "x-example": null + }, + "name": { + "type": "string", + "description": "Webhook name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable a webhook.", + "default": true, + "x-example": false + }, + "tls": { + "type": "boolean", + "description": "Certificate verification, false for disabled or true for enabled.", + "default": false, + "x-example": false + }, + "authUsername": { + "type": "string", + "description": "Webhook HTTP user. Max length: 256 chars.", + "default": "", + "x-example": "<AUTH_USERNAME>" + }, + "authPassword": { + "type": "string", + "description": "Webhook HTTP password. Max length: 256 chars.", + "default": "", + "x-example": "<AUTH_PASSWORD>" + }, + "secret": { + "type": "string", + "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", + "x-example": "<SECRET>", + "x-nullable": true + } + }, + "required": [ + "webhookId", + "url", + "name", + "events" + ] + } + } + } + } + } + }, + "\/webhooks\/{webhookId}": { + "get": { + "summary": "Get webhook", + "operationId": "webhooksGet", + "tags": [ + "webhooks" + ], + "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": "get", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update webhook", + "operationId": "webhooksUpdate", + "tags": [ + "webhooks" + ], + "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": "update", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook 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>" + }, + "url": { + "type": "string", + "description": "Webhook URL.", + "x-example": null + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable a webhook.", + "default": true, + "x-example": false + }, + "tls": { + "type": "boolean", + "description": "Certificate verification, false for disabled or true for enabled.", + "default": false, + "x-example": false + }, + "authUsername": { + "type": "string", + "description": "Webhook HTTP user. Max length: 256 chars.", + "default": "", + "x-example": "<AUTH_USERNAME>" + }, + "authPassword": { + "type": "string", + "description": "Webhook HTTP password. Max length: 256 chars.", + "default": "", + "x-example": "<AUTH_PASSWORD>" + } + }, + "required": [ + "name", + "url", + "events" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete webhook", + "operationId": "webhooksDelete", + "tags": [ + "webhooks" + ], + "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": "delete", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ] + } + }, + "\/webhooks\/{webhookId}\/secret": { + "patch": { + "summary": "Update webhook secret key", + "operationId": "webhooksUpdateSecret", + "tags": [ + "webhooks" + ], + "description": "Update the webhook signing key. This endpoint can be used to regenerate the signing 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": "updateSecret", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/update-secret.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "secret": { + "type": "string", + "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", + "x-example": "<SECRET>", + "x-nullable": true + } + } + } + } + } + } + } + } + }, + "tags": [ + { + "name": "account", + "description": "The Account service allows you to authenticate and manage a user account." + }, + { + "name": "avatars", + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." + }, + { + "name": "databases", + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" + }, + { + "name": "tablesdb", + "description": "The TablesDB service allows you to create structured tables of columns, query and filter lists of rows" + }, + { + "name": "locale", + "description": "The Locale service allows you to customize your app based on your users' location." + }, + { + "name": "health", + "description": "The Health service allows you to both validate and monitor your Appwrite server's health." }, { "name": "projects", @@ -84835,6 +87935,12 @@ "x-example": 17890, "format": "int32" }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "x-example": 12345, + "format": "int32" + }, "chunksTotal": { "type": "integer", "description": "Total number of chunks available", @@ -84868,6 +87974,7 @@ "signature", "mimeType", "sizeOriginal", + "sizeActual", "chunksTotal", "chunksUploaded", "encryption", @@ -84885,6 +87992,7 @@ "signature": "5d529fd02b544198ae075bd57c1762bb", "mimeType": "image\/png", "sizeOriginal": 17890, + "sizeActual": 12345, "chunksTotal": 17890, "chunksUploaded": 17890, "encryption": true, @@ -85397,6 +88505,28 @@ "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", "x-example": false }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "x-example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "x-example": [ + "src\/**", + "!docs\/**" + ] + }, "buildSpecification": { "type": "string", "description": "Machine specification for deployment builds.", @@ -85451,6 +88581,8 @@ "providerBranch", "providerRootDirectory", "providerSilentMode", + "providerBranches", + "providerPaths", "buildSpecification", "runtimeSpecification", "buildRuntime", @@ -85485,6 +88617,14 @@ "providerBranch": "main", "providerRootDirectory": "sites\/helloWorld", "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], "buildSpecification": "s-1vcpu-512mb", "runtimeSpecification": "s-1vcpu-512mb", "buildRuntime": "node-22", @@ -85833,6 +88973,28 @@ "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", "x-example": false }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "x-example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "x-example": [ + "src\/**", + "!docs\/**" + ] + }, "buildSpecification": { "type": "string", "description": "Machine specification for deployment builds.", @@ -85873,6 +89035,8 @@ "providerBranch", "providerRootDirectory", "providerSilentMode", + "providerBranches", + "providerPaths", "buildSpecification", "runtimeSpecification" ], @@ -85905,6 +89069,14 @@ "providerBranch": "main", "providerRootDirectory": "functions\/helloWorld", "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], "buildSpecification": "s-1vcpu-512mb", "runtimeSpecification": "s-1vcpu-512mb" } @@ -87395,7 +90567,8 @@ "x-example": "", "items": { "$ref": "#\/components\/schemas\/billingLimits" - } + }, + "nullable": true }, "blocks": { "type": "array", @@ -87436,7 +90609,6 @@ "services", "protocols", "region", - "billingLimits", "blocks", "consoleAccessedAt" ], @@ -91361,123 +94533,579 @@ "x-example": 0, "format": "int32" }, - "buckets": { + "buckets": { + "type": "array", + "description": "Aggregated number of buckets per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "files": { + "type": "array", + "description": "Aggregated number of files per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "storage": { + "type": "array", + "description": "Aggregated number of files storage (in bytes) per period .", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "bucketsTotal", + "filesTotal", + "filesStorageTotal", + "buckets", + "files", + "storage" + ], + "example": { + "range": "30d", + "bucketsTotal": 0, + "filesTotal": 0, + "filesStorageTotal": 0, + "buckets": [], + "files": [], + "storage": [] + } + }, + "usageBuckets": { + "description": "UsageBuckets", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" + }, + "filesTotal": { + "type": "integer", + "description": "Total aggregated number of bucket files.", + "x-example": 0, + "format": "int32" + }, + "filesStorageTotal": { + "type": "integer", + "description": "Total aggregated number of bucket files storage (in bytes).", + "x-example": 0, + "format": "int32" + }, + "files": { + "type": "array", + "description": "Aggregated number of bucket files per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "storage": { + "type": "array", + "description": "Aggregated number of bucket storage files (in bytes) per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "imageTransformations": { + "type": "array", + "description": "Aggregated number of files transformations per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "imageTransformationsTotal": { + "type": "integer", + "description": "Total aggregated number of files transformations.", + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "range", + "filesTotal", + "filesStorageTotal", + "files", + "storage", + "imageTransformations", + "imageTransformationsTotal" + ], + "example": { + "range": "30d", + "filesTotal": 0, + "filesStorageTotal": 0, + "files": [], + "storage": [], + "imageTransformations": [], + "imageTransformationsTotal": 0 + } + }, + "usageFunctions": { + "description": "UsageFunctions", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" + }, + "functionsTotal": { + "type": "integer", + "description": "Total aggregated number of functions.", + "x-example": 0, + "format": "int32" + }, + "deploymentsTotal": { + "type": "integer", + "description": "Total aggregated number of functions deployments.", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of functions deployment storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTotal": { + "type": "integer", + "description": "Total aggregated number of functions build.", + "x-example": 0, + "format": "int32" + }, + "buildsStorageTotal": { + "type": "integer", + "description": "total aggregated sum of functions build storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of functions build compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of functions build mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Total aggregated number of functions execution.", + "x-example": 0, + "format": "int32" + }, + "executionsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of functions execution compute time.", + "x-example": 0, + "format": "int32" + }, + "executionsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of functions execution mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "functions": { + "type": "array", + "description": "Aggregated number of functions per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": 0 + }, + "deployments": { + "type": "array", + "description": "Aggregated number of functions deployment per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "deploymentsStorage": { + "type": "array", + "description": "Aggregated number of functions deployment storage per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", + "x-example": 0, + "format": "int32" + }, + "builds": { + "type": "array", + "description": "Aggregated number of functions build per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsStorage": { + "type": "array", + "description": "Aggregated sum of functions build storage per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsTime": { + "type": "array", + "description": "Aggregated sum of functions build compute time per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsMbSeconds": { + "type": "array", + "description": "Aggregated sum of functions build mbSeconds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated number of functions execution per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executionsTime": { + "type": "array", + "description": "Aggregated number of functions execution compute time per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executionsMbSeconds": { + "type": "array", + "description": "Aggregated number of functions mbSeconds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsSuccess": { + "type": "array", + "description": "Aggregated number of successful function builds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsFailed": { + "type": "array", + "description": "Aggregated number of failed function builds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "functionsTotal", + "deploymentsTotal", + "deploymentsStorageTotal", + "buildsTotal", + "buildsStorageTotal", + "buildsTimeTotal", + "buildsMbSecondsTotal", + "executionsTotal", + "executionsTimeTotal", + "executionsMbSecondsTotal", + "functions", + "deployments", + "deploymentsStorage", + "buildsSuccessTotal", + "buildsFailedTotal", + "builds", + "buildsStorage", + "buildsTime", + "buildsMbSeconds", + "executions", + "executionsTime", + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed" + ], + "example": { + "range": "30d", + "functionsTotal": 0, + "deploymentsTotal": 0, + "deploymentsStorageTotal": 0, + "buildsTotal": 0, + "buildsStorageTotal": 0, + "buildsTimeTotal": 0, + "buildsMbSecondsTotal": 0, + "executionsTotal": 0, + "executionsTimeTotal": 0, + "executionsMbSecondsTotal": 0, + "functions": 0, + "deployments": [], + "deploymentsStorage": [], + "buildsSuccessTotal": 0, + "buildsFailedTotal": 0, + "builds": [], + "buildsStorage": [], + "buildsTime": [], + "buildsMbSeconds": [], + "executions": [], + "executionsTime": [], + "executionsMbSeconds": [], + "buildsSuccess": [], + "buildsFailed": [] + } + }, + "usageFunction": { + "description": "UsageFunction", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "The time range of the usage stats.", + "x-example": "30d" + }, + "deploymentsTotal": { + "type": "integer", + "description": "Total aggregated number of function deployments.", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of function deployments storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTotal": { + "type": "integer", + "description": "Total aggregated number of function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsSuccessTotal": { + "type": "integer", + "description": "Total aggregated number of successful function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsFailedTotal": { + "type": "integer", + "description": "Total aggregated number of failed function builds.", + "x-example": 0, + "format": "int32" + }, + "buildsStorageTotal": { + "type": "integer", + "description": "total aggregated sum of function builds storage.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of function builds compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsTimeAverage": { + "type": "integer", + "description": "Average builds compute time.", + "x-example": 0, + "format": "int32" + }, + "buildsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of function builds mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Total aggregated number of function executions.", + "x-example": 0, + "format": "int32" + }, + "executionsTimeTotal": { + "type": "integer", + "description": "Total aggregated sum of function executions compute time.", + "x-example": 0, + "format": "int32" + }, + "executionsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated sum of function executions mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "deployments": { + "type": "array", + "description": "Aggregated number of function deployments per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "deploymentsStorage": { + "type": "array", + "description": "Aggregated number of function deployments storage per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "builds": { + "type": "array", + "description": "Aggregated number of function builds per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsStorage": { + "type": "array", + "description": "Aggregated sum of function builds storage per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsTime": { + "type": "array", + "description": "Aggregated sum of function builds compute time per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "buildsMbSeconds": { "type": "array", - "description": "Aggregated number of buckets per period.", + "description": "Aggregated number of function builds mbSeconds per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "files": { + "executions": { "type": "array", - "description": "Aggregated number of files per period.", + "description": "Aggregated number of function executions per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "storage": { + "executionsTime": { "type": "array", - "description": "Aggregated number of files storage (in bytes) per period .", + "description": "Aggregated number of function executions compute time per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] - } - }, - "required": [ - "range", - "bucketsTotal", - "filesTotal", - "filesStorageTotal", - "buckets", - "files", - "storage" - ], - "example": { - "range": "30d", - "bucketsTotal": 0, - "filesTotal": 0, - "filesStorageTotal": 0, - "buckets": [], - "files": [], - "storage": [] - } - }, - "usageBuckets": { - "description": "UsageBuckets", - "type": "object", - "properties": { - "range": { - "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" - }, - "filesTotal": { - "type": "integer", - "description": "Total aggregated number of bucket files.", - "x-example": 0, - "format": "int32" - }, - "filesStorageTotal": { - "type": "integer", - "description": "Total aggregated number of bucket files storage (in bytes).", - "x-example": 0, - "format": "int32" }, - "files": { + "executionsMbSeconds": { "type": "array", - "description": "Aggregated number of bucket files per period.", + "description": "Aggregated number of function mbSeconds per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "storage": { + "buildsSuccess": { "type": "array", - "description": "Aggregated number of bucket storage files (in bytes) per period.", + "description": "Aggregated number of successful builds per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "imageTransformations": { + "buildsFailed": { "type": "array", - "description": "Aggregated number of files transformations per period.", + "description": "Aggregated number of failed builds per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] - }, - "imageTransformationsTotal": { - "type": "integer", - "description": "Total aggregated number of files transformations.", - "x-example": 0, - "format": "int32" } }, "required": [ "range", - "filesTotal", - "filesStorageTotal", - "files", - "storage", - "imageTransformations", - "imageTransformationsTotal" + "deploymentsTotal", + "deploymentsStorageTotal", + "buildsTotal", + "buildsSuccessTotal", + "buildsFailedTotal", + "buildsStorageTotal", + "buildsTimeTotal", + "buildsTimeAverage", + "buildsMbSecondsTotal", + "executionsTotal", + "executionsTimeTotal", + "executionsMbSecondsTotal", + "deployments", + "deploymentsStorage", + "builds", + "buildsStorage", + "buildsTime", + "buildsMbSeconds", + "executions", + "executionsTime", + "executionsMbSeconds", + "buildsSuccess", + "buildsFailed" ], "example": { "range": "30d", - "filesTotal": 0, - "filesStorageTotal": 0, - "files": [], - "storage": [], - "imageTransformations": [], - "imageTransformationsTotal": 0 + "deploymentsTotal": 0, + "deploymentsStorageTotal": 0, + "buildsTotal": 0, + "buildsSuccessTotal": 0, + "buildsFailedTotal": 0, + "buildsStorageTotal": 0, + "buildsTimeTotal": 0, + "buildsTimeAverage": 0, + "buildsMbSecondsTotal": 0, + "executionsTotal": 0, + "executionsTimeTotal": 0, + "executionsMbSecondsTotal": 0, + "deployments": [], + "deploymentsStorage": [], + "builds": [], + "buildsStorage": [], + "buildsTime": [], + "buildsMbSeconds": [], + "executions": [], + "executionsTime": [], + "executionsMbSeconds": [], + "buildsSuccess": [], + "buildsFailed": [] } }, - "usageFunctions": { - "description": "UsageFunctions", + "usageSites": { + "description": "UsageSites", "type": "object", "properties": { "range": { @@ -91485,77 +95113,119 @@ "description": "Time range of the usage stats.", "x-example": "30d" }, - "functionsTotal": { + "sitesTotal": { "type": "integer", - "description": "Total aggregated number of functions.", + "description": "Total aggregated number of sites.", "x-example": 0, "format": "int32" }, + "sites": { + "type": "array", + "description": "Aggregated number of sites per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, "deploymentsTotal": { "type": "integer", - "description": "Total aggregated number of functions deployments.", + "description": "Total aggregated number of sites deployments.", "x-example": 0, "format": "int32" }, "deploymentsStorageTotal": { "type": "integer", - "description": "Total aggregated sum of functions deployment storage.", + "description": "Total aggregated sum of sites deployment storage.", "x-example": 0, "format": "int32" }, "buildsTotal": { "type": "integer", - "description": "Total aggregated number of functions build.", + "description": "Total aggregated number of sites build.", "x-example": 0, "format": "int32" }, "buildsStorageTotal": { "type": "integer", - "description": "total aggregated sum of functions build storage.", + "description": "total aggregated sum of sites build storage.", "x-example": 0, "format": "int32" }, "buildsTimeTotal": { "type": "integer", - "description": "Total aggregated sum of functions build compute time.", + "description": "Total aggregated sum of sites build compute time.", "x-example": 0, "format": "int32" }, "buildsMbSecondsTotal": { "type": "integer", - "description": "Total aggregated sum of functions build mbSeconds.", + "description": "Total aggregated sum of sites build mbSeconds.", "x-example": 0, "format": "int32" }, "executionsTotal": { "type": "integer", - "description": "Total aggregated number of functions execution.", + "description": "Total aggregated number of sites execution.", "x-example": 0, "format": "int32" }, "executionsTimeTotal": { "type": "integer", - "description": "Total aggregated sum of functions execution compute time.", + "description": "Total aggregated sum of sites execution compute time.", "x-example": 0, "format": "int32" }, "executionsMbSecondsTotal": { "type": "integer", - "description": "Total aggregated sum of functions execution mbSeconds.", + "description": "Total aggregated sum of sites execution mbSeconds.", "x-example": 0, "format": "int32" }, - "functions": { + "requestsTotal": { + "type": "integer", + "description": "Total aggregated number of requests.", + "x-example": 0, + "format": "int32" + }, + "requests": { "type": "array", - "description": "Aggregated number of functions per period.", + "description": "Aggregated number of requests per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, - "x-example": 0 + "x-example": [] + }, + "inboundTotal": { + "type": "integer", + "description": "Total aggregated inbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "inbound": { + "type": "array", + "description": "Aggregated number of inbound bandwidth per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "outboundTotal": { + "type": "integer", + "description": "Total aggregated outbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "outbound": { + "type": "array", + "description": "Aggregated number of outbound bandwidth per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, "deployments": { "type": "array", - "description": "Aggregated number of functions deployment per period.", + "description": "Aggregated number of sites deployment per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -91563,7 +95233,7 @@ }, "deploymentsStorage": { "type": "array", - "description": "Aggregated number of functions deployment storage per period.", + "description": "Aggregated number of sites deployment storage per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -91571,19 +95241,19 @@ }, "buildsSuccessTotal": { "type": "integer", - "description": "Total aggregated number of successful function builds.", + "description": "Total aggregated number of successful site builds.", "x-example": 0, "format": "int32" }, "buildsFailedTotal": { "type": "integer", - "description": "Total aggregated number of failed function builds.", + "description": "Total aggregated number of failed site builds.", "x-example": 0, "format": "int32" }, "builds": { "type": "array", - "description": "Aggregated number of functions build per period.", + "description": "Aggregated number of sites build per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -91591,7 +95261,7 @@ }, "buildsStorage": { "type": "array", - "description": "Aggregated sum of functions build storage per period.", + "description": "Aggregated sum of sites build storage per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -91599,7 +95269,7 @@ }, "buildsTime": { "type": "array", - "description": "Aggregated sum of functions build compute time per period.", + "description": "Aggregated sum of sites build compute time per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -91607,7 +95277,7 @@ }, "buildsMbSeconds": { "type": "array", - "description": "Aggregated sum of functions build mbSeconds per period.", + "description": "Aggregated sum of sites build mbSeconds per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -91615,7 +95285,7 @@ }, "executions": { "type": "array", - "description": "Aggregated number of functions execution per period.", + "description": "Aggregated number of sites execution per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -91623,7 +95293,7 @@ }, "executionsTime": { "type": "array", - "description": "Aggregated number of functions execution compute time per period.", + "description": "Aggregated number of sites execution compute time per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -91631,7 +95301,7 @@ }, "executionsMbSeconds": { "type": "array", - "description": "Aggregated number of functions mbSeconds per period.", + "description": "Aggregated number of sites mbSeconds per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -91639,7 +95309,7 @@ }, "buildsSuccess": { "type": "array", - "description": "Aggregated number of successful function builds per period.", + "description": "Aggregated number of successful site builds per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -91647,7 +95317,7 @@ }, "buildsFailed": { "type": "array", - "description": "Aggregated number of failed function builds per period.", + "description": "Aggregated number of failed site builds per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -91656,7 +95326,8 @@ }, "required": [ "range", - "functionsTotal", + "sitesTotal", + "sites", "deploymentsTotal", "deploymentsStorageTotal", "buildsTotal", @@ -91666,7 +95337,12 @@ "executionsTotal", "executionsTimeTotal", "executionsMbSecondsTotal", - "functions", + "requestsTotal", + "requests", + "inboundTotal", + "inbound", + "outboundTotal", + "outbound", "deployments", "deploymentsStorage", "buildsSuccessTotal", @@ -91683,7 +95359,8 @@ ], "example": { "range": "30d", - "functionsTotal": 0, + "sitesTotal": 0, + "sites": [], "deploymentsTotal": 0, "deploymentsStorageTotal": 0, "buildsTotal": 0, @@ -91693,7 +95370,12 @@ "executionsTotal": 0, "executionsTimeTotal": 0, "executionsMbSecondsTotal": 0, - "functions": 0, + "requestsTotal": 0, + "requests": [], + "inboundTotal": 0, + "inbound": [], + "outboundTotal": 0, + "outbound": [], "deployments": [], "deploymentsStorage": [], "buildsSuccessTotal": 0, @@ -91709,8 +95391,8 @@ "buildsFailed": [] } }, - "usageFunction": { - "description": "UsageFunction", + "usageSite": { + "description": "UsageSite", "type": "object", "properties": { "range": { @@ -91877,6 +95559,48 @@ "$ref": "#\/components\/schemas\/metric" }, "x-example": [] + }, + "requestsTotal": { + "type": "integer", + "description": "Total aggregated number of requests.", + "x-example": 0, + "format": "int32" + }, + "requests": { + "type": "array", + "description": "Aggregated number of requests per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "inboundTotal": { + "type": "integer", + "description": "Total aggregated inbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "inbound": { + "type": "array", + "description": "Aggregated number of inbound bandwidth per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "outboundTotal": { + "type": "integer", + "description": "Total aggregated outbound bandwidth.", + "x-example": 0, + "format": "int32" + }, + "outbound": { + "type": "array", + "description": "Aggregated number of outbound bandwidth per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] } }, "required": [ @@ -91903,7 +95627,13 @@ "executionsTime", "executionsMbSeconds", "buildsSuccess", - "buildsFailed" + "buildsFailed", + "requestsTotal", + "requests", + "inboundTotal", + "inbound", + "outboundTotal", + "outbound" ], "example": { "range": "30d", @@ -91929,223 +95659,546 @@ "executionsTime": [], "executionsMbSeconds": [], "buildsSuccess": [], - "buildsFailed": [] + "buildsFailed": [], + "requestsTotal": 0, + "requests": [], + "inboundTotal": 0, + "inbound": [], + "outboundTotal": 0, + "outbound": [] } }, - "usageSites": { - "description": "UsageSites", + "usageProject": { + "description": "Project", "type": "object", "properties": { - "range": { - "type": "string", - "description": "Time range of the usage stats.", - "x-example": "30d" + "executionsTotal": { + "type": "integer", + "description": "Total aggregated number of function executions.", + "x-example": 0, + "format": "int32" }, - "sitesTotal": { + "documentsTotal": { "type": "integer", - "description": "Total aggregated number of sites.", + "description": "Total aggregated number of documents in legacy\/tablesdb.", "x-example": 0, "format": "int32" }, - "sites": { + "documentsdbDocumentsTotal": { + "type": "integer", + "description": "Total aggregated number of documents in documentsdb.", + "x-example": 0, + "format": "int32" + }, + "rowsTotal": { + "type": "integer", + "description": "Total aggregated number of rows.", + "x-example": 0, + "format": "int32" + }, + "databasesTotal": { + "type": "integer", + "description": "Total aggregated number of databases.", + "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.", + "x-example": 0, + "format": "int32" + }, + "filesStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of files storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "functionsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of functions storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "buildsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of builds storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of deployments storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, + "bucketsTotal": { + "type": "integer", + "description": "Total aggregated number of buckets.", + "x-example": 0, + "format": "int32" + }, + "executionsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated number of function executions mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "buildsMbSecondsTotal": { + "type": "integer", + "description": "Total aggregated number of function builds mbSeconds.", + "x-example": 0, + "format": "int32" + }, + "databasesReadsTotal": { + "type": "integer", + "description": "Aggregated stats for total databases reads.", + "x-example": 0, + "format": "int32" + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Aggregated stats for total databases writes.", + "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.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "network": { + "type": "array", + "description": "Aggregated number of consumed bandwidth per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "users": { + "type": "array", + "description": "Aggregated number of users per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated number of executions per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "executionsBreakdown": { + "type": "array", + "description": "Aggregated breakdown in totals of executions by functions.", + "items": { + "$ref": "#\/components\/schemas\/metricBreakdown" + }, + "x-example": [] + }, + "bucketsBreakdown": { + "type": "array", + "description": "Aggregated breakdown in totals of usage by buckets.", + "items": { + "$ref": "#\/components\/schemas\/metricBreakdown" + }, + "x-example": [] + }, + "databasesStorageBreakdown": { + "type": "array", + "description": "An array of the aggregated breakdown of storage usage by databases.", + "items": { + "$ref": "#\/components\/schemas\/metricBreakdown" + }, + "x-example": [] + }, + "executionsMbSecondsBreakdown": { + "type": "array", + "description": "Aggregated breakdown in totals of execution mbSeconds by functions.", + "items": { + "$ref": "#\/components\/schemas\/metricBreakdown" + }, + "x-example": [] + }, + "buildsMbSecondsBreakdown": { + "type": "array", + "description": "Aggregated breakdown in totals of build mbSeconds by functions.", + "items": { + "$ref": "#\/components\/schemas\/metricBreakdown" + }, + "x-example": [] + }, + "functionsStorageBreakdown": { "type": "array", - "description": "Aggregated number of sites per period.", + "description": "Aggregated breakdown in totals of functions storage size (in bytes).", "items": { - "$ref": "#\/components\/schemas\/metric" + "$ref": "#\/components\/schemas\/metricBreakdown" }, "x-example": [] }, - "deploymentsTotal": { + "authPhoneTotal": { "type": "integer", - "description": "Total aggregated number of sites deployments.", + "description": "Aggregated stats for total auth phone.", "x-example": 0, "format": "int32" }, - "deploymentsStorageTotal": { + "authPhoneEstimate": { "type": "integer", - "description": "Total aggregated sum of sites deployment storage.", + "description": "Aggregated stats for total auth phone estimation.", "x-example": 0, "format": "int32" }, - "buildsTotal": { - "type": "integer", - "description": "Total aggregated number of sites build.", - "x-example": 0, - "format": "int32" + "authPhoneCountryBreakdown": { + "type": "array", + "description": "Aggregated breakdown in totals of phone auth by country.", + "items": { + "$ref": "#\/components\/schemas\/metricBreakdown" + }, + "x-example": [] }, - "buildsStorageTotal": { + "databasesReads": { + "type": "array", + "description": "Aggregated stats for database reads.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "databasesWrites": { + "type": "array", + "description": "Aggregated stats for database writes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "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.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "imageTransformationsTotal": { "type": "integer", - "description": "total aggregated sum of sites build storage.", + "description": "Total aggregated number of image transformations.", "x-example": 0, "format": "int32" }, - "buildsTimeTotal": { + "vectorsdbDatabasesTotal": { "type": "integer", - "description": "Total aggregated sum of sites build compute time.", + "description": "Total aggregated number of VectorsDB databases.", "x-example": 0, "format": "int32" }, - "buildsMbSecondsTotal": { + "vectorsdbCollectionsTotal": { "type": "integer", - "description": "Total aggregated sum of sites build mbSeconds.", + "description": "Total aggregated number of VectorsDB collections.", "x-example": 0, "format": "int32" }, - "executionsTotal": { + "vectorsdbDocumentsTotal": { "type": "integer", - "description": "Total aggregated number of sites execution.", + "description": "Total aggregated number of VectorsDB documents.", "x-example": 0, "format": "int32" }, - "executionsTimeTotal": { + "vectorsdbDatabasesStorageTotal": { "type": "integer", - "description": "Total aggregated sum of sites execution compute time.", + "description": "Total aggregated VectorsDB storage (bytes).", "x-example": 0, "format": "int32" }, - "executionsMbSecondsTotal": { + "vectorsdbDatabasesReadsTotal": { "type": "integer", - "description": "Total aggregated sum of sites execution mbSeconds.", + "description": "Total aggregated number of VectorsDB reads.", "x-example": 0, "format": "int32" }, - "requestsTotal": { + "vectorsdbDatabasesWritesTotal": { "type": "integer", - "description": "Total aggregated number of requests.", + "description": "Total aggregated number of VectorsDB writes.", "x-example": 0, "format": "int32" }, - "requests": { + "vectorsdbDatabases": { "type": "array", - "description": "Aggregated number of requests per period.", + "description": "Aggregated VectorsDB databases per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "inboundTotal": { - "type": "integer", - "description": "Total aggregated inbound bandwidth.", - "x-example": 0, - "format": "int32" - }, - "inbound": { + "vectorsdbCollections": { "type": "array", - "description": "Aggregated number of inbound bandwidth per period.", + "description": "Aggregated VectorsDB collections per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "outboundTotal": { - "type": "integer", - "description": "Total aggregated outbound bandwidth.", - "x-example": 0, - "format": "int32" + "vectorsdbDocuments": { + "type": "array", + "description": "Aggregated VectorsDB documents per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "outbound": { + "vectorsdbDatabasesStorage": { "type": "array", - "description": "Aggregated number of outbound bandwidth per period.", + "description": "Aggregated VectorsDB storage per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "deployments": { + "vectorsdbDatabasesReads": { "type": "array", - "description": "Aggregated number of sites deployment per period.", + "description": "Aggregated VectorsDB reads per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "deploymentsStorage": { + "vectorsdbDatabasesWrites": { "type": "array", - "description": "Aggregated number of sites deployment storage per period.", + "description": "Aggregated VectorsDB writes per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "buildsSuccessTotal": { - "type": "integer", - "description": "Total aggregated number of successful site builds.", + "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, - "format": "int32" + "items": { + "$ref": "#\/components\/schemas\/metric" + } }, - "buildsFailedTotal": { - "type": "integer", - "description": "Total aggregated number of failed site builds.", + "embeddingsTextTokensTotal": { + "type": "object", + "description": "Total aggregated number of tokens processed by text.", "x-example": 0, - "format": "int32" + "items": { + "$ref": "#\/components\/schemas\/metric" + } }, - "builds": { - "type": "array", - "description": "Aggregated number of sites build per period.", + "embeddingsTextDurationTotal": { + "type": "object", + "description": "Total aggregated duration spent generating text embeddings.", + "x-example": 0, "items": { "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + } }, - "buildsStorage": { - "type": "array", - "description": "Aggregated sum of sites build storage per period.", + "embeddingsTextErrorsTotal": { + "type": "object", + "description": "Total aggregated number of errors while generating text embeddings.", + "x-example": 0, "items": { "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + } }, - "buildsTime": { + "functionsExecutions": { "type": "array", - "description": "Aggregated sum of sites build compute time per period.", + "description": "Aggregated number of function executions per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "buildsMbSeconds": { + "functionsExecutionsTotal": { + "type": "integer", + "description": "Total aggregated number of function executions.", + "x-example": 0, + "format": "int32" + }, + "sitesExecutions": { "type": "array", - "description": "Aggregated sum of sites build mbSeconds per period.", + "description": "Aggregated number of site executions per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "executions": { + "sitesExecutionsTotal": { + "type": "integer", + "description": "Total aggregated number of site executions.", + "x-example": 0, + "format": "int32" + }, + "networkTotal": { + "type": "integer", + "description": "Aggregated stats for total network bandwidth.", + "x-example": 0, + "format": "int32" + }, + "backupsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total backups storage.", + "x-example": 0, + "format": "int32" + }, + "screenshotsGenerated": { "type": "array", - "description": "Aggregated number of sites execution per period.", + "description": "An array of aggregated number of screenshots generated.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "executionsTime": { + "screenshotsGeneratedTotal": { + "type": "integer", + "description": "Total aggregated number of screenshots generated.", + "x-example": 0, + "format": "int32" + }, + "imagineCredits": { "type": "array", - "description": "Aggregated number of sites execution compute time per period.", + "description": "An array of aggregated number of Imagine credits in the given period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "executionsMbSeconds": { + "imagineCreditsTotal": { + "type": "integer", + "description": "Total aggregated number of Imagine credits.", + "x-example": 0, + "format": "int32" + }, + "realtimeConnectionsTotal": { + "type": "integer", + "description": "Current aggregated number of open Realtime connections.", + "x-example": 0, + "format": "int32" + }, + "realtimeMessagesTotal": { + "type": "integer", + "description": "Total number of Realtime messages sent to clients.", + "x-example": 0, + "format": "int32" + }, + "realtimeBandwidthTotal": { + "type": "integer", + "description": "Total consumed Realtime bandwidth (in bytes).", + "x-example": 0, + "format": "int32" + }, + "realtimeConnections": { "type": "array", - "description": "Aggregated number of sites mbSeconds per period.", + "description": "Aggregated number of open Realtime connections per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "buildsSuccess": { + "realtimeMessages": { "type": "array", - "description": "Aggregated number of successful site builds per period.", + "description": "Aggregated number of Realtime messages sent to clients per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "buildsFailed": { + "realtimeBandwidth": { "type": "array", - "description": "Aggregated number of failed site builds per period.", + "description": "Aggregated consumed Realtime bandwidth (in bytes) per period.", "items": { "$ref": "#\/components\/schemas\/metric" }, @@ -92153,3176 +96206,3818 @@ } }, "required": [ - "range", - "sitesTotal", - "sites", - "deploymentsTotal", - "deploymentsStorageTotal", - "buildsTotal", - "buildsStorageTotal", - "buildsTimeTotal", - "buildsMbSecondsTotal", "executionsTotal", - "executionsTimeTotal", + "documentsTotal", + "documentsdbDocumentsTotal", + "rowsTotal", + "databasesTotal", + "documentsdbTotal", + "databasesStorageTotal", + "documentsdbDatabasesStorageTotal", + "usersTotal", + "filesStorageTotal", + "functionsStorageTotal", + "buildsStorageTotal", + "deploymentsStorageTotal", + "bucketsTotal", "executionsMbSecondsTotal", - "requestsTotal", + "buildsMbSecondsTotal", + "databasesReadsTotal", + "databasesWritesTotal", + "documentsdbDatabasesReadsTotal", + "documentsdbDatabasesWritesTotal", "requests", - "inboundTotal", - "inbound", - "outboundTotal", - "outbound", - "deployments", - "deploymentsStorage", - "buildsSuccessTotal", - "buildsFailedTotal", - "builds", - "buildsStorage", - "buildsTime", - "buildsMbSeconds", + "network", + "users", "executions", - "executionsTime", - "executionsMbSeconds", - "buildsSuccess", - "buildsFailed" + "executionsBreakdown", + "bucketsBreakdown", + "databasesStorageBreakdown", + "executionsMbSecondsBreakdown", + "buildsMbSecondsBreakdown", + "functionsStorageBreakdown", + "authPhoneTotal", + "authPhoneEstimate", + "authPhoneCountryBreakdown", + "databasesReads", + "databasesWrites", + "documentsdbDatabasesReads", + "documentsdbDatabasesWrites", + "documentsdbDatabasesStorage", + "imageTransformations", + "imageTransformationsTotal", + "vectorsdbDatabasesTotal", + "vectorsdbCollectionsTotal", + "vectorsdbDocumentsTotal", + "vectorsdbDatabasesStorageTotal", + "vectorsdbDatabasesReadsTotal", + "vectorsdbDatabasesWritesTotal", + "vectorsdbDatabases", + "vectorsdbCollections", + "vectorsdbDocuments", + "vectorsdbDatabasesStorage", + "vectorsdbDatabasesReads", + "vectorsdbDatabasesWrites", + "embeddingsText", + "embeddingsTextTokens", + "embeddingsTextDuration", + "embeddingsTextErrors", + "embeddingsTextTotal", + "embeddingsTextTokensTotal", + "embeddingsTextDurationTotal", + "embeddingsTextErrorsTotal", + "functionsExecutions", + "functionsExecutionsTotal", + "sitesExecutions", + "sitesExecutionsTotal", + "networkTotal", + "backupsStorageTotal", + "screenshotsGenerated", + "screenshotsGeneratedTotal", + "imagineCredits", + "imagineCreditsTotal", + "realtimeConnectionsTotal", + "realtimeMessagesTotal", + "realtimeBandwidthTotal", + "realtimeConnections", + "realtimeMessages", + "realtimeBandwidth" + ], + "example": { + "executionsTotal": 0, + "documentsTotal": 0, + "documentsdbDocumentsTotal": 0, + "rowsTotal": 0, + "databasesTotal": 0, + "documentsdbTotal": 0, + "databasesStorageTotal": 0, + "documentsdbDatabasesStorageTotal": 0, + "usersTotal": 0, + "filesStorageTotal": 0, + "functionsStorageTotal": 0, + "buildsStorageTotal": 0, + "deploymentsStorageTotal": 0, + "bucketsTotal": 0, + "executionsMbSecondsTotal": 0, + "buildsMbSecondsTotal": 0, + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "documentsdbDatabasesReadsTotal": 0, + "documentsdbDatabasesWritesTotal": 0, + "requests": [], + "network": [], + "users": [], + "executions": [], + "executionsBreakdown": [], + "bucketsBreakdown": [], + "databasesStorageBreakdown": [], + "executionsMbSecondsBreakdown": [], + "buildsMbSecondsBreakdown": [], + "functionsStorageBreakdown": [], + "authPhoneTotal": 0, + "authPhoneEstimate": 0, + "authPhoneCountryBreakdown": [], + "databasesReads": [], + "databasesWrites": [], + "documentsdbDatabasesReads": [], + "documentsdbDatabasesWrites": [], + "documentsdbDatabasesStorage": [], + "imageTransformations": [], + "imageTransformationsTotal": 0, + "vectorsdbDatabasesTotal": 0, + "vectorsdbCollectionsTotal": 0, + "vectorsdbDocumentsTotal": 0, + "vectorsdbDatabasesStorageTotal": 0, + "vectorsdbDatabasesReadsTotal": 0, + "vectorsdbDatabasesWritesTotal": 0, + "vectorsdbDatabases": [], + "vectorsdbCollections": [], + "vectorsdbDocuments": [], + "vectorsdbDatabasesStorage": [], + "vectorsdbDatabasesReads": [], + "vectorsdbDatabasesWrites": [], + "embeddingsText": [], + "embeddingsTextTokens": [], + "embeddingsTextDuration": [], + "embeddingsTextErrors": [], + "embeddingsTextTotal": 0, + "embeddingsTextTokensTotal": 0, + "embeddingsTextDurationTotal": 0, + "embeddingsTextErrorsTotal": 0, + "functionsExecutions": [], + "functionsExecutionsTotal": 0, + "sitesExecutions": [], + "sitesExecutionsTotal": 0, + "networkTotal": 0, + "backupsStorageTotal": 0, + "screenshotsGenerated": [], + "screenshotsGeneratedTotal": 0, + "imagineCredits": [], + "imagineCreditsTotal": 0, + "realtimeConnectionsTotal": 0, + "realtimeMessagesTotal": 0, + "realtimeBandwidthTotal": 0, + "realtimeConnections": [], + "realtimeMessages": [], + "realtimeBandwidth": [] + } + }, + "headers": { + "description": "Headers", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Header name.", + "x-example": "Content-Type" + }, + "value": { + "type": "string", + "description": "Header value.", + "x-example": "application\/json" + } + }, + "required": [ + "name", + "value" + ], + "example": { + "name": "Content-Type", + "value": "application\/json" + } + }, + "specification": { + "description": "Specification", + "type": "object", + "properties": { + "memory": { + "type": "integer", + "description": "Memory size in MB.", + "x-example": 512, + "format": "int32" + }, + "cpus": { + "type": "number", + "description": "Number of CPUs.", + "x-example": 1, + "format": "double" + }, + "enabled": { + "type": "boolean", + "description": "Is size enabled.", + "x-example": true + }, + "slug": { + "type": "string", + "description": "Size slug.", + "x-example": "s-1vcpu-512mb" + } + }, + "required": [ + "memory", + "cpus", + "enabled", + "slug" ], "example": { - "range": "30d", - "sitesTotal": 0, - "sites": [], - "deploymentsTotal": 0, - "deploymentsStorageTotal": 0, - "buildsTotal": 0, - "buildsStorageTotal": 0, - "buildsTimeTotal": 0, - "buildsMbSecondsTotal": 0, - "executionsTotal": 0, - "executionsTimeTotal": 0, - "executionsMbSecondsTotal": 0, - "requestsTotal": 0, - "requests": [], - "inboundTotal": 0, - "inbound": [], - "outboundTotal": 0, - "outbound": [], - "deployments": [], - "deploymentsStorage": [], - "buildsSuccessTotal": 0, - "buildsFailedTotal": 0, - "builds": [], - "buildsStorage": [], - "buildsTime": [], - "buildsMbSeconds": [], - "executions": [], - "executionsTime": [], - "executionsMbSeconds": [], - "buildsSuccess": [], - "buildsFailed": [] + "memory": 512, + "cpus": 1, + "enabled": true, + "slug": "s-1vcpu-512mb" } }, - "usageSite": { - "description": "UsageSite", + "proxyRule": { + "description": "Rule", "type": "object", "properties": { - "range": { + "$id": { "type": "string", - "description": "The time range of the usage stats.", - "x-example": "30d" + "description": "Rule ID.", + "x-example": "5e5ea5c16897e" }, - "deploymentsTotal": { - "type": "integer", - "description": "Total aggregated number of function deployments.", - "x-example": 0, - "format": "int32" + "$createdAt": { + "type": "string", + "description": "Rule creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of function deployments storage.", - "x-example": 0, - "format": "int32" + "$updatedAt": { + "type": "string", + "description": "Rule update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "buildsTotal": { - "type": "integer", - "description": "Total aggregated number of function builds.", - "x-example": 0, - "format": "int32" + "domain": { + "type": "string", + "description": "Domain name.", + "x-example": "appwrite.company.com" }, - "buildsSuccessTotal": { - "type": "integer", - "description": "Total aggregated number of successful function builds.", - "x-example": 0, - "format": "int32" + "type": { + "type": "string", + "description": "Action definition for the rule. Possible values are \"api\", \"deployment\", or \"redirect\"", + "x-example": "deployment" }, - "buildsFailedTotal": { - "type": "integer", - "description": "Total aggregated number of failed function builds.", - "x-example": 0, - "format": "int32" + "trigger": { + "type": "string", + "description": "Defines how the rule was created. Possible values are \"manual\" or \"deployment\"", + "x-example": "manual" }, - "buildsStorageTotal": { - "type": "integer", - "description": "total aggregated sum of function builds storage.", - "x-example": 0, - "format": "int32" + "redirectUrl": { + "type": "string", + "description": "URL to redirect to. Used if type is \"redirect\"", + "x-example": "https:\/\/appwrite.io\/docs" }, - "buildsTimeTotal": { + "redirectStatusCode": { "type": "integer", - "description": "Total aggregated sum of function builds compute time.", - "x-example": 0, + "description": "Status code to apply during redirect. Used if type is \"redirect\"", + "x-example": 301, "format": "int32" }, - "buildsTimeAverage": { - "type": "integer", - "description": "Average builds compute time.", - "x-example": 0, - "format": "int32" + "deploymentId": { + "type": "string", + "description": "ID of deployment. Used if type is \"deployment\"", + "x-example": "n3u9feiwmf" }, - "buildsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of function builds mbSeconds.", - "x-example": 0, - "format": "int32" + "deploymentResourceType": { + "type": "string", + "description": "Type of deployment. Possible values are \"function\", \"site\". Used if rule's type is \"deployment\".", + "x-example": "function", + "enum": [ + "function", + "site" + ], + "nullable": true }, - "executionsTotal": { - "type": "integer", - "description": "Total aggregated number of function executions.", - "x-example": 0, - "format": "int32" + "deploymentResourceId": { + "type": "string", + "description": "ID of deployment's resource (site or function ID). Used if type is \"deployment\"", + "x-example": "n3u9feiwmf" }, - "executionsTimeTotal": { - "type": "integer", - "description": "Total aggregated sum of function executions compute time.", - "x-example": 0, - "format": "int32" + "deploymentVcsProviderBranch": { + "type": "string", + "description": "Name of Git branch that updates rule. Used if type is \"deployment\"", + "x-example": "main" }, - "executionsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated sum of function executions mbSeconds.", - "x-example": 0, - "format": "int32" + "status": { + "type": "string", + "description": "Domain verification status. Possible values are \"unverified\", \"verifying\", \"verified\"", + "x-example": "verified", + "enum": [ + "unverified", + "verifying", + "verified" + ] }, - "deployments": { - "type": "array", - "description": "Aggregated number of function deployments per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "logs": { + "type": "string", + "description": "Logs from rule verification or certificate generation. Certificate generation logs are prioritized if both are available.", + "x-example": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record." }, - "deploymentsStorage": { - "type": "array", - "description": "Aggregated number of function deployments storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "renewAt": { + "type": "string", + "description": "Certificate auto-renewal date in ISO 8601 format.", + "x-example": "datetime" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "domain", + "type", + "trigger", + "redirectUrl", + "redirectStatusCode", + "deploymentId", + "deploymentResourceId", + "deploymentVcsProviderBranch", + "status", + "logs", + "renewAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "domain": "appwrite.company.com", + "type": "deployment", + "trigger": "manual", + "redirectUrl": "https:\/\/appwrite.io\/docs", + "redirectStatusCode": 301, + "deploymentId": "n3u9feiwmf", + "deploymentResourceType": "function", + "deploymentResourceId": "n3u9feiwmf", + "deploymentVcsProviderBranch": "main", + "status": "verified", + "logs": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record.", + "renewAt": "datetime" + } + }, + "schedule": { + "description": "Schedule", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Schedule ID.", + "x-example": "5e5ea5c16897e" }, - "builds": { - "type": "array", - "description": "Aggregated number of function builds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$createdAt": { + "type": "string", + "description": "Schedule creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "buildsStorage": { - "type": "array", - "description": "Aggregated sum of function builds storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$updatedAt": { + "type": "string", + "description": "Schedule update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "buildsTime": { - "type": "array", - "description": "Aggregated sum of function builds compute time per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "resourceType": { + "type": "string", + "description": "The resource type associated with this schedule.", + "x-example": "function" }, - "buildsMbSeconds": { - "type": "array", - "description": "Aggregated number of function builds mbSeconds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "resourceId": { + "type": "string", + "description": "The resource ID associated with this schedule.", + "x-example": "5e5ea5c16897e" }, - "executions": { - "type": "array", - "description": "Aggregated number of function executions per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "resourceUpdatedAt": { + "type": "string", + "description": "Change-tracking timestamp used by the scheduler to detect resource changes in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "executionsTime": { - "type": "array", - "description": "Aggregated number of function executions compute time per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "projectId": { + "type": "string", + "description": "The project ID associated with this schedule.", + "x-example": "5e5ea5c16897e" }, - "executionsMbSeconds": { - "type": "array", - "description": "Aggregated number of function mbSeconds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "schedule": { + "type": "string", + "description": "The CRON schedule expression.", + "x-example": "5 4 * * *" }, - "buildsSuccess": { - "type": "array", - "description": "Aggregated number of successful builds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, + "data": { + "type": "object", + "description": "Schedule data used to store resource-specific context needed for execution.", "x-example": [] }, - "buildsFailed": { - "type": "array", - "description": "Aggregated number of failed builds per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "active": { + "type": "boolean", + "description": "Whether the schedule is active.", + "x-example": true }, - "requestsTotal": { - "type": "integer", - "description": "Total aggregated number of requests.", - "x-example": 0, - "format": "int32" + "region": { + "type": "string", + "description": "The region where the schedule is deployed.", + "x-example": "fra" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "resourceType", + "resourceId", + "resourceUpdatedAt", + "projectId", + "schedule", + "data", + "active", + "region" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "resourceType": "function", + "resourceId": "5e5ea5c16897e", + "resourceUpdatedAt": "2020-10-15T06:38:00.000+00:00", + "projectId": "5e5ea5c16897e", + "schedule": "5 4 * * *", + "data": [], + "active": true, + "region": "fra" + } + }, + "emailTemplate": { + "description": "EmailTemplate", + "type": "object", + "properties": { + "templateId": { + "type": "string", + "description": "Template type", + "x-example": "verification" }, - "requests": { - "type": "array", - "description": "Aggregated number of requests per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "locale": { + "type": "string", + "description": "Template locale", + "x-example": "en_us" }, - "inboundTotal": { - "type": "integer", - "description": "Total aggregated inbound bandwidth.", - "x-example": 0, - "format": "int32" + "message": { + "type": "string", + "description": "Template message", + "x-example": "Click on the link to verify your account." }, - "inbound": { - "type": "array", - "description": "Aggregated number of inbound bandwidth per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "senderName": { + "type": "string", + "description": "Name of the sender", + "x-example": "My User" }, - "outboundTotal": { - "type": "integer", - "description": "Total aggregated outbound bandwidth.", - "x-example": 0, - "format": "int32" + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "x-example": "mail@appwrite.io" }, - "outbound": { - "type": "array", - "description": "Aggregated number of outbound bandwidth per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "replyToEmail": { + "type": "string", + "description": "Reply to email address", + "x-example": "emails@appwrite.io" + }, + "replyToName": { + "type": "string", + "description": "Reply to name", + "x-example": "Support Team" + }, + "subject": { + "type": "string", + "description": "Email subject", + "x-example": "Please verify your email address" } }, "required": [ - "range", - "deploymentsTotal", - "deploymentsStorageTotal", - "buildsTotal", - "buildsSuccessTotal", - "buildsFailedTotal", - "buildsStorageTotal", - "buildsTimeTotal", - "buildsTimeAverage", - "buildsMbSecondsTotal", - "executionsTotal", - "executionsTimeTotal", - "executionsMbSecondsTotal", - "deployments", - "deploymentsStorage", - "builds", - "buildsStorage", - "buildsTime", - "buildsMbSeconds", - "executions", - "executionsTime", - "executionsMbSeconds", - "buildsSuccess", - "buildsFailed", - "requestsTotal", - "requests", - "inboundTotal", - "inbound", - "outboundTotal", - "outbound" - ], - "example": { - "range": "30d", - "deploymentsTotal": 0, - "deploymentsStorageTotal": 0, - "buildsTotal": 0, - "buildsSuccessTotal": 0, - "buildsFailedTotal": 0, - "buildsStorageTotal": 0, - "buildsTimeTotal": 0, - "buildsTimeAverage": 0, - "buildsMbSecondsTotal": 0, - "executionsTotal": 0, - "executionsTimeTotal": 0, - "executionsMbSecondsTotal": 0, - "deployments": [], - "deploymentsStorage": [], - "builds": [], - "buildsStorage": [], - "buildsTime": [], - "buildsMbSeconds": [], - "executions": [], - "executionsTime": [], - "executionsMbSeconds": [], - "buildsSuccess": [], - "buildsFailed": [], - "requestsTotal": 0, - "requests": [], - "inboundTotal": 0, - "inbound": [], - "outboundTotal": 0, - "outbound": [] + "templateId", + "locale", + "message", + "senderName", + "senderEmail", + "replyToEmail", + "replyToName", + "subject" + ], + "example": { + "templateId": "verification", + "locale": "en_us", + "message": "Click on the link to verify your account.", + "senderName": "My User", + "senderEmail": "mail@appwrite.io", + "replyToEmail": "emails@appwrite.io", + "replyToName": "Support Team", + "subject": "Please verify your email address" } }, - "usageProject": { - "description": "UsageProject", + "consoleVariables": { + "description": "Console Variables", "type": "object", "properties": { - "executionsTotal": { - "type": "integer", - "description": "Total aggregated number of function executions.", - "x-example": 0, - "format": "int32" + "_APP_DOMAIN_TARGET_CNAME": { + "type": "string", + "description": "CNAME target for your Appwrite custom domains.", + "x-example": "appwrite.io" }, - "documentsTotal": { - "type": "integer", - "description": "Total aggregated number of documents in legacy\/tablesdb.", - "x-example": 0, - "format": "int32" + "_APP_DOMAIN_TARGET_A": { + "type": "string", + "description": "A target for your Appwrite custom domains.", + "x-example": "127.0.0.1" }, - "documentsdbDocumentsTotal": { + "_APP_COMPUTE_BUILD_TIMEOUT": { "type": "integer", - "description": "Total aggregated number of documents in documentsdb.", - "x-example": 0, + "description": "Maximum build timeout in seconds.", + "x-example": 900, "format": "int32" }, - "rowsTotal": { - "type": "integer", - "description": "Total aggregated number of rows.", - "x-example": 0, - "format": "int32" + "_APP_DOMAIN_TARGET_AAAA": { + "type": "string", + "description": "AAAA target for your Appwrite custom domains.", + "x-example": "::1" }, - "databasesTotal": { - "type": "integer", - "description": "Total aggregated number of databases.", - "x-example": 0, - "format": "int32" + "_APP_DOMAIN_TARGET_CAA": { + "type": "string", + "description": "CAA target for your Appwrite custom domains.", + "x-example": "digicert.com" }, - "documentsdbTotal": { + "_APP_STORAGE_LIMIT": { "type": "integer", - "description": "Total aggregated number of documentsdb.", - "x-example": 0, + "description": "Maximum file size allowed for file upload in bytes.", + "x-example": "30000000", "format": "int32" }, - "databasesStorageTotal": { + "_APP_COMPUTE_SIZE_LIMIT": { "type": "integer", - "description": "Total aggregated sum of databases storage size (in bytes).", - "x-example": 0, + "description": "Maximum file size allowed for deployment in bytes.", + "x-example": "30000000", "format": "int32" }, - "documentsdbDatabasesStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of documentsdb databases storage size (in bytes).", - "x-example": 0, - "format": "int32" + "_APP_USAGE_STATS": { + "type": "string", + "description": "Defines if usage stats are enabled. This value is set to 'enabled' by default, to disable the usage stats set the value to 'disabled'.", + "x-example": "enabled" }, - "usersTotal": { - "type": "integer", - "description": "Total aggregated number of users.", - "x-example": 0, - "format": "int32" + "_APP_VCS_ENABLED": { + "type": "boolean", + "description": "Defines if VCS (Version Control System) is enabled.", + "x-example": true }, - "filesStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of files storage size (in bytes).", - "x-example": 0, - "format": "int32" + "_APP_DOMAIN_ENABLED": { + "type": "boolean", + "description": "Defines if main domain is configured. If so, custom domains can be created.", + "x-example": true }, - "functionsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of functions storage size (in bytes).", - "x-example": 0, - "format": "int32" + "_APP_ASSISTANT_ENABLED": { + "type": "boolean", + "description": "Defines if AI assistant is enabled.", + "x-example": true }, - "buildsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of builds storage size (in bytes).", - "x-example": 0, - "format": "int32" + "_APP_DOMAIN_SITES": { + "type": "string", + "description": "A comma separated list of domains to use for site URLs.", + "x-example": "sites.localhost,sites.example.com" }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Total aggregated sum of deployments storage size (in bytes).", - "x-example": 0, - "format": "int32" + "_APP_DOMAIN_FUNCTIONS": { + "type": "string", + "description": "A domain to use for function URLs.", + "x-example": "functions.localhost" }, - "bucketsTotal": { - "type": "integer", - "description": "Total aggregated number of buckets.", - "x-example": 0, - "format": "int32" + "_APP_OPTIONS_FORCE_HTTPS": { + "type": "string", + "description": "Defines if HTTPS is enforced for all requests.", + "x-example": "enabled" }, - "executionsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated number of function executions mbSeconds.", - "x-example": 0, - "format": "int32" + "_APP_DOMAINS_NAMESERVERS": { + "type": "string", + "description": "Comma-separated list of nameservers.", + "x-example": "ns1.example.com,ns2.example.com" }, - "buildsMbSecondsTotal": { - "type": "integer", - "description": "Total aggregated number of function builds mbSeconds.", - "x-example": 0, - "format": "int32" + "_APP_DB_ADAPTER": { + "type": "string", + "description": "Database adapter in use.", + "x-example": "mysql" }, - "databasesReadsTotal": { - "type": "integer", - "description": "Aggregated stats for total databases reads.", - "x-example": 0, - "format": "int32" + "supportForRelationships": { + "type": "boolean", + "description": "Whether the database adapter supports relationships.", + "x-example": true }, - "databasesWritesTotal": { - "type": "integer", - "description": "Aggregated stats for total databases writes.", - "x-example": 0, - "format": "int32" + "supportForOperators": { + "type": "boolean", + "description": "Whether the database adapter supports operators.", + "x-example": true }, - "documentsdbDatabasesReadsTotal": { - "type": "integer", - "description": "Total number of documentsdb databases reads.", - "x-example": 0, - "format": "int32" + "supportForSpatials": { + "type": "boolean", + "description": "Whether the database adapter supports spatial attributes.", + "x-example": true }, - "documentsdbDatabasesWritesTotal": { - "type": "integer", - "description": "Total number of documentsdb databases writes.", - "x-example": 0, - "format": "int32" + "supportForSpatialIndexNull": { + "type": "boolean", + "description": "Whether the database adapter supports spatial indexes on nullable columns.", + "x-example": false }, - "requests": { - "type": "array", - "description": "Aggregated number of requests per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "supportForFulltextWildcard": { + "type": "boolean", + "description": "Whether the database adapter supports fulltext wildcard search.", + "x-example": true }, - "network": { - "type": "array", - "description": "Aggregated number of consumed bandwidth per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "supportForMultipleFulltextIndexes": { + "type": "boolean", + "description": "Whether the database adapter supports multiple fulltext indexes per collection.", + "x-example": true }, - "users": { - "type": "array", - "description": "Aggregated number of users per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "supportForAttributeResizing": { + "type": "boolean", + "description": "Whether the database adapter supports resizing attributes.", + "x-example": true }, - "executions": { - "type": "array", - "description": "Aggregated number of executions per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "supportForSchemas": { + "type": "boolean", + "description": "Whether the database adapter supports fixed schemas with row width limits.", + "x-example": true }, - "executionsBreakdown": { - "type": "array", - "description": "Aggregated breakdown in totals of executions by functions.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] + "maxIndexLength": { + "type": "integer", + "description": "Maximum index length supported by the database adapter.", + "x-example": 768, + "format": "int32" }, - "bucketsBreakdown": { - "type": "array", - "description": "Aggregated breakdown in totals of usage by buckets.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] + "supportForIntegerIds": { + "type": "boolean", + "description": "Whether the database adapter uses integer sequence IDs.", + "x-example": true }, - "databasesStorageBreakdown": { - "type": "array", - "description": "An array of the aggregated breakdown of storage usage by databases.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] + "_APP_CONSOLE_EMAIL_VERIFICATION": { + "type": "string", + "description": "Whether email verification for console users is required. Can be \"true\" or \"false\".", + "x-example": "true" + } + }, + "required": [ + "_APP_DOMAIN_TARGET_CNAME", + "_APP_DOMAIN_TARGET_A", + "_APP_COMPUTE_BUILD_TIMEOUT", + "_APP_DOMAIN_TARGET_AAAA", + "_APP_DOMAIN_TARGET_CAA", + "_APP_STORAGE_LIMIT", + "_APP_COMPUTE_SIZE_LIMIT", + "_APP_USAGE_STATS", + "_APP_VCS_ENABLED", + "_APP_DOMAIN_ENABLED", + "_APP_ASSISTANT_ENABLED", + "_APP_DOMAIN_SITES", + "_APP_DOMAIN_FUNCTIONS", + "_APP_OPTIONS_FORCE_HTTPS", + "_APP_DOMAINS_NAMESERVERS", + "_APP_DB_ADAPTER", + "supportForRelationships", + "supportForOperators", + "supportForSpatials", + "supportForSpatialIndexNull", + "supportForFulltextWildcard", + "supportForMultipleFulltextIndexes", + "supportForAttributeResizing", + "supportForSchemas", + "maxIndexLength", + "supportForIntegerIds", + "_APP_CONSOLE_EMAIL_VERIFICATION" + ], + "example": { + "_APP_DOMAIN_TARGET_CNAME": "appwrite.io", + "_APP_DOMAIN_TARGET_A": "127.0.0.1", + "_APP_COMPUTE_BUILD_TIMEOUT": 900, + "_APP_DOMAIN_TARGET_AAAA": "::1", + "_APP_DOMAIN_TARGET_CAA": "digicert.com", + "_APP_STORAGE_LIMIT": "30000000", + "_APP_COMPUTE_SIZE_LIMIT": "30000000", + "_APP_USAGE_STATS": "enabled", + "_APP_VCS_ENABLED": true, + "_APP_DOMAIN_ENABLED": true, + "_APP_ASSISTANT_ENABLED": true, + "_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_DB_ADAPTER": "mysql", + "supportForRelationships": true, + "supportForOperators": true, + "supportForSpatials": true, + "supportForSpatialIndexNull": false, + "supportForFulltextWildcard": true, + "supportForMultipleFulltextIndexes": true, + "supportForAttributeResizing": true, + "supportForSchemas": true, + "maxIndexLength": 768, + "supportForIntegerIds": true, + "_APP_CONSOLE_EMAIL_VERIFICATION": "true" + } + }, + "consoleOAuth2ProviderParameter": { + "description": "Console OAuth2 Provider Parameter", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Parameter ID. Maps to the request body field used by the project OAuth2 update endpoint (e.g. `clientId`, `appKey`, `tenant`).", + "x-example": "clientId" }, - "executionsMbSecondsBreakdown": { - "type": "array", - "description": "Aggregated breakdown in totals of execution mbSeconds by functions.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] + "name": { + "type": "string", + "description": "Verbose, user-facing parameter name as shown in the provider's own dashboard. Includes alternate names when the provider exposes more than one.", + "x-example": "Client ID or App ID" }, - "buildsMbSecondsBreakdown": { - "type": "array", - "description": "Aggregated breakdown in totals of build mbSeconds by functions.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] + "example": { + "type": "string", + "description": "Example value for this parameter.", + "x-example": "e4d87900000000540733" }, - "functionsStorageBreakdown": { + "hint": { + "type": "string", + "description": "Optional hint for this parameter, typically calling out a common wrong value. Empty string when no hint is set.", + "x-example": "Example of wrong value: 370006" + } + }, + "required": [ + "$id", + "name", + "example", + "hint" + ], + "example": { + "$id": "clientId", + "name": "Client ID or App ID", + "example": "e4d87900000000540733", + "hint": "Example of wrong value: 370006" + } + }, + "consoleOAuth2Provider": { + "description": "Console OAuth2 Provider", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "OAuth2 provider ID.", + "x-example": "github" + }, + "parameters": { "type": "array", - "description": "Aggregated breakdown in totals of functions storage size (in bytes).", + "description": "List of parameters required to configure this OAuth2 provider.", "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" + "$ref": "#\/components\/schemas\/consoleOAuth2ProviderParameter" }, - "x-example": [] - }, - "authPhoneTotal": { - "type": "integer", - "description": "Aggregated stats for total auth phone.", - "x-example": 0, - "format": "int32" - }, - "authPhoneEstimate": { + "x-example": "" + } + }, + "required": [ + "$id", + "parameters" + ], + "example": { + "$id": "github", + "parameters": "" + } + }, + "consoleOAuth2ProviderList": { + "description": "Console OAuth2 Providers List", + "type": "object", + "properties": { + "total": { "type": "integer", - "description": "Aggregated stats for total auth phone estimation.", - "x-example": 0, + "description": "Total number of OAuth2 providers exposed by the server.", + "x-example": 5, "format": "int32" }, - "authPhoneCountryBreakdown": { - "type": "array", - "description": "Aggregated breakdown in totals of phone auth by country.", - "items": { - "$ref": "#\/components\/schemas\/metricBreakdown" - }, - "x-example": [] - }, - "databasesReads": { + "oAuth2Providers": { "type": "array", - "description": "Aggregated stats for database reads.", + "description": "List of OAuth2 providers, each with the parameters required to configure it.", "items": { - "$ref": "#\/components\/schemas\/metric" + "$ref": "#\/components\/schemas\/consoleOAuth2Provider" }, - "x-example": [] + "x-example": "" + } + }, + "required": [ + "total", + "oAuth2Providers" + ], + "example": { + "total": 5, + "oAuth2Providers": "" + } + }, + "consoleKeyScope": { + "description": "Console Key Scope", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Scope ID.", + "x-example": "users.read" }, - "databasesWrites": { - "type": "array", - "description": "Aggregated stats for database writes.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "description": { + "type": "string", + "description": "Scope description.", + "x-example": "Access to read your project's users" }, - "documentsdbDatabasesReads": { - "type": "array", - "description": "An array of aggregated number of documentsdb database reads.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "category": { + "type": "string", + "description": "Scope category.", + "x-example": "Auth" }, - "documentsdbDatabasesWrites": { - "type": "array", - "description": "An array of aggregated number of documentsdb database writes.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "deprecated": { + "type": "boolean", + "description": "Scope is deprecated.", + "x-example": true + } + }, + "required": [ + "$id", + "description", + "category", + "deprecated" + ], + "example": { + "$id": "users.read", + "description": "Access to read your project's users", + "category": "Auth", + "deprecated": true + } + }, + "consoleKeyScopeList": { + "description": "Console Key Scopes List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of key scopes exposed by the server.", + "x-example": 5, + "format": "int32" }, - "documentsdbDatabasesStorage": { + "scopes": { "type": "array", - "description": "An array of aggregated sum of documentsdb databases storage size (in bytes) per period.", + "description": "List of key scopes, each with its ID and description.", "items": { - "$ref": "#\/components\/schemas\/metric" + "$ref": "#\/components\/schemas\/consoleKeyScope" }, - "x-example": [] + "x-example": "" + } + }, + "required": [ + "total", + "scopes" + ], + "example": { + "total": 5, + "scopes": "" + } + }, + "mfaChallenge": { + "description": "MFA Challenge", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Token ID.", + "x-example": "bb8ea5c16897e" }, - "imageTransformations": { + "$createdAt": { + "type": "string", + "description": "Token creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "userId": { + "type": "string", + "description": "User ID.", + "x-example": "5e5ea5c168bb8" + }, + "expire": { + "type": "string", + "description": "Token expiration date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "$createdAt", + "userId", + "expire" + ], + "example": { + "$id": "bb8ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "userId": "5e5ea5c168bb8", + "expire": "2020-10-15T06:38:00.000+00:00" + } + }, + "mfaRecoveryCodes": { + "description": "MFA Recovery Codes", + "type": "object", + "properties": { + "recoveryCodes": { "type": "array", - "description": "An array of aggregated number of image transformations.", + "description": "Recovery codes.", "items": { - "$ref": "#\/components\/schemas\/metric" + "type": "string" }, - "x-example": [] - }, - "imageTransformationsTotal": { - "type": "integer", - "description": "Total aggregated number of image transformations.", - "x-example": 0, - "format": "int32" - }, - "vectorsdbDatabasesTotal": { - "type": "integer", - "description": "Total aggregated number of VectorsDB databases.", - "x-example": 0, - "format": "int32" - }, - "vectorsdbCollectionsTotal": { - "type": "integer", - "description": "Total aggregated number of VectorsDB collections.", - "x-example": 0, - "format": "int32" + "x-example": [ + "a3kf0-s0cl2", + "s0co1-as98s" + ] + } + }, + "required": [ + "recoveryCodes" + ], + "example": { + "recoveryCodes": [ + "a3kf0-s0cl2", + "s0co1-as98s" + ] + } + }, + "mfaType": { + "description": "MFAType", + "type": "object", + "properties": { + "secret": { + "type": "string", + "description": "Secret token used for TOTP factor.", + "x-example": "[SHARED_SECRET]" }, - "vectorsdbDocumentsTotal": { - "type": "integer", - "description": "Total aggregated number of VectorsDB documents.", - "x-example": 0, - "format": "int32" + "uri": { + "type": "string", + "description": "URI for authenticator apps.", + "x-example": "otpauth:\/\/totp\/appwrite:user@example.com?secret=[SHARED_SECRET]&issuer=appwrite" + } + }, + "required": [ + "secret", + "uri" + ], + "example": { + "secret": "[SHARED_SECRET]", + "uri": "otpauth:\/\/totp\/appwrite:user@example.com?secret=[SHARED_SECRET]&issuer=appwrite" + } + }, + "mfaFactors": { + "description": "MFAFactors", + "type": "object", + "properties": { + "totp": { + "type": "boolean", + "description": "Can TOTP be used for MFA challenge for this account.", + "x-example": true }, - "vectorsdbDatabasesStorageTotal": { - "type": "integer", - "description": "Total aggregated VectorsDB storage (bytes).", - "x-example": 0, - "format": "int32" + "phone": { + "type": "boolean", + "description": "Can phone (SMS) be used for MFA challenge for this account.", + "x-example": true }, - "vectorsdbDatabasesReadsTotal": { - "type": "integer", - "description": "Total aggregated number of VectorsDB reads.", - "x-example": 0, - "format": "int32" + "email": { + "type": "boolean", + "description": "Can email be used for MFA challenge for this account.", + "x-example": true }, - "vectorsdbDatabasesWritesTotal": { - "type": "integer", - "description": "Total aggregated number of VectorsDB writes.", - "x-example": 0, - "format": "int32" + "recoveryCode": { + "type": "boolean", + "description": "Can recovery code be used for MFA challenge for this account.", + "x-example": true + } + }, + "required": [ + "totp", + "phone", + "email", + "recoveryCode" + ], + "example": { + "totp": true, + "phone": true, + "email": true, + "recoveryCode": true + } + }, + "provider": { + "description": "Provider", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Provider ID.", + "x-example": "5e5ea5c16897e" }, - "vectorsdbDatabases": { - "type": "array", - "description": "Aggregated VectorsDB databases per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$createdAt": { + "type": "string", + "description": "Provider creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "vectorsdbCollections": { - "type": "array", - "description": "Aggregated VectorsDB collections per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$updatedAt": { + "type": "string", + "description": "Provider update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "vectorsdbDocuments": { - "type": "array", - "description": "Aggregated VectorsDB documents per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "name": { + "type": "string", + "description": "The name for the provider instance.", + "x-example": "Mailgun" }, - "vectorsdbDatabasesStorage": { - "type": "array", - "description": "Aggregated VectorsDB storage per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "provider": { + "type": "string", + "description": "The name of the provider service.", + "x-example": "mailgun" }, - "vectorsdbDatabasesReads": { - "type": "array", - "description": "Aggregated VectorsDB reads per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "enabled": { + "type": "boolean", + "description": "Is provider enabled?", + "x-example": true }, - "vectorsdbDatabasesWrites": { - "type": "array", - "description": "Aggregated VectorsDB writes per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "type": { + "type": "string", + "description": "Type of provider.", + "x-example": "sms" }, - "embeddingsText": { + "credentials": { "type": "object", - "description": "Aggregated number of text embedding calls per period.", - "x-example": [], - "items": { - "$ref": "#\/components\/schemas\/metric" + "description": "Provider credentials.", + "x-example": { + "key": "123456789" } }, - "embeddingsTextTokens": { + "options": { "type": "object", - "description": "Aggregated number of tokens processed by text embeddings per period.", - "x-example": [], - "items": { - "$ref": "#\/components\/schemas\/metric" - } + "description": "Provider options.", + "x-example": { + "from": "sender-email@mydomain" + }, + "nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "name", + "provider", + "enabled", + "type", + "credentials" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "Mailgun", + "provider": "mailgun", + "enabled": true, + "type": "sms", + "credentials": { + "key": "123456789" }, - "embeddingsTextDuration": { - "type": "object", - "description": "Aggregated duration spent generating text embeddings per period.", - "x-example": [], - "items": { - "$ref": "#\/components\/schemas\/metric" - } + "options": { + "from": "sender-email@mydomain" + } + } + }, + "message": { + "description": "Message", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Message ID.", + "x-example": "5e5ea5c16897e" }, - "embeddingsTextErrors": { - "type": "object", - "description": "Aggregated number of errors while generating text embeddings per period.", - "x-example": [], - "items": { - "$ref": "#\/components\/schemas\/metric" - } + "$createdAt": { + "type": "string", + "description": "Message creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "embeddingsTextTotal": { - "type": "object", - "description": "Total aggregated number of text embedding calls.", - "x-example": 0, - "items": { - "$ref": "#\/components\/schemas\/metric" - } + "$updatedAt": { + "type": "string", + "description": "Message update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "embeddingsTextTokensTotal": { - "type": "object", - "description": "Total aggregated number of tokens processed by text.", - "x-example": 0, - "items": { - "$ref": "#\/components\/schemas\/metric" - } + "providerType": { + "type": "string", + "description": "Message provider type.", + "x-example": "email" }, - "embeddingsTextDurationTotal": { - "type": "object", - "description": "Total aggregated duration spent generating text embeddings.", - "x-example": 0, + "topics": { + "type": "array", + "description": "Topic IDs set as recipients.", "items": { - "$ref": "#\/components\/schemas\/metric" - } + "type": "string" + }, + "x-example": [ + "5e5ea5c16897e" + ] }, - "embeddingsTextErrorsTotal": { - "type": "object", - "description": "Total aggregated number of errors while generating text embeddings.", - "x-example": 0, + "users": { + "type": "array", + "description": "User IDs set as recipients.", "items": { - "$ref": "#\/components\/schemas\/metric" - } + "type": "string" + }, + "x-example": [ + "5e5ea5c16897e" + ] }, - "functionsExecutions": { + "targets": { "type": "array", - "description": "Aggregated number of function executions per period.", + "description": "Target IDs set as recipients.", "items": { - "$ref": "#\/components\/schemas\/metric" + "type": "string" }, - "x-example": [] + "x-example": [ + "5e5ea5c16897e" + ] }, - "functionsExecutionsTotal": { - "type": "integer", - "description": "Total aggregated number of function executions.", - "x-example": 0, - "format": "int32" + "scheduledAt": { + "type": "string", + "description": "The scheduled time for message.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true }, - "sitesExecutions": { + "deliveredAt": { + "type": "string", + "description": "The time when the message was delivered.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "deliveryErrors": { "type": "array", - "description": "Aggregated number of site executions per period.", + "description": "Delivery errors if any.", "items": { - "$ref": "#\/components\/schemas\/metric" + "type": "string" }, - "x-example": [] + "x-example": [ + "Failed to send message to target 5e5ea5c16897e: Credentials not valid." + ], + "nullable": true }, - "sitesExecutionsTotal": { + "deliveredTotal": { "type": "integer", - "description": "Total aggregated number of site executions.", - "x-example": 0, + "description": "Number of recipients the message was delivered to.", + "x-example": 1, "format": "int32" }, - "networkTotal": { - "type": "integer", - "description": "Aggregated stats for total network bandwidth.", - "x-example": 0, - "format": "int32" + "data": { + "type": "object", + "description": "Data of the message.", + "x-example": { + "subject": "Welcome to Appwrite", + "content": "Hi there, welcome to Appwrite family." + } }, - "backupsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total backups storage.", - "x-example": 0, - "format": "int32" + "status": { + "type": "string", + "description": "Status of delivery.", + "x-example": "processing", + "enum": [ + "draft", + "processing", + "scheduled", + "sent", + "failed" + ] + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "providerType", + "topics", + "users", + "targets", + "deliveredTotal", + "data", + "status" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "topics": [ + "5e5ea5c16897e" + ], + "users": [ + "5e5ea5c16897e" + ], + "targets": [ + "5e5ea5c16897e" + ], + "scheduledAt": "2020-10-15T06:38:00.000+00:00", + "deliveredAt": "2020-10-15T06:38:00.000+00:00", + "deliveryErrors": [ + "Failed to send message to target 5e5ea5c16897e: Credentials not valid." + ], + "deliveredTotal": 1, + "data": { + "subject": "Welcome to Appwrite", + "content": "Hi there, welcome to Appwrite family." }, - "screenshotsGenerated": { - "type": "array", - "description": "An array of aggregated number of screenshots generated.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "status": "processing" + } + }, + "topic": { + "description": "Topic", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Topic ID.", + "x-example": "259125845563242502" }, - "screenshotsGeneratedTotal": { - "type": "integer", - "description": "Total aggregated number of screenshots generated.", - "x-example": 0, - "format": "int32" + "$createdAt": { + "type": "string", + "description": "Topic creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "imagineCredits": { - "type": "array", - "description": "An array of aggregated number of Imagine credits in the given period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$updatedAt": { + "type": "string", + "description": "Topic update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "imagineCreditsTotal": { - "type": "integer", - "description": "Total aggregated number of Imagine credits.", - "x-example": 0, - "format": "int32" + "name": { + "type": "string", + "description": "The name of the topic.", + "x-example": "events" }, - "realtimeConnectionsTotal": { + "emailTotal": { "type": "integer", - "description": "Current aggregated number of open Realtime connections.", - "x-example": 0, + "description": "Total count of email subscribers subscribed to the topic.", + "x-example": 100, "format": "int32" }, - "realtimeMessagesTotal": { + "smsTotal": { "type": "integer", - "description": "Total number of Realtime messages sent to clients.", - "x-example": 0, + "description": "Total count of SMS subscribers subscribed to the topic.", + "x-example": 100, "format": "int32" }, - "realtimeBandwidthTotal": { + "pushTotal": { "type": "integer", - "description": "Total consumed Realtime bandwidth (in bytes).", - "x-example": 0, + "description": "Total count of push subscribers subscribed to the topic.", + "x-example": 100, "format": "int32" }, - "realtimeConnections": { - "type": "array", - "description": "Aggregated number of open Realtime connections per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "realtimeMessages": { - "type": "array", - "description": "Aggregated number of Realtime messages sent to clients per period.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "realtimeBandwidth": { + "subscribe": { "type": "array", - "description": "Aggregated consumed Realtime bandwidth (in bytes) per period.", + "description": "Subscribe permissions.", "items": { - "$ref": "#\/components\/schemas\/metric" + "type": "string" }, - "x-example": [] + "x-example": "users" } }, "required": [ - "executionsTotal", - "documentsTotal", - "documentsdbDocumentsTotal", - "rowsTotal", - "databasesTotal", - "documentsdbTotal", - "databasesStorageTotal", - "documentsdbDatabasesStorageTotal", - "usersTotal", - "filesStorageTotal", - "functionsStorageTotal", - "buildsStorageTotal", - "deploymentsStorageTotal", - "bucketsTotal", - "executionsMbSecondsTotal", - "buildsMbSecondsTotal", - "databasesReadsTotal", - "databasesWritesTotal", - "documentsdbDatabasesReadsTotal", - "documentsdbDatabasesWritesTotal", - "requests", - "network", - "users", - "executions", - "executionsBreakdown", - "bucketsBreakdown", - "databasesStorageBreakdown", - "executionsMbSecondsBreakdown", - "buildsMbSecondsBreakdown", - "functionsStorageBreakdown", - "authPhoneTotal", - "authPhoneEstimate", - "authPhoneCountryBreakdown", - "databasesReads", - "databasesWrites", - "documentsdbDatabasesReads", - "documentsdbDatabasesWrites", - "documentsdbDatabasesStorage", - "imageTransformations", - "imageTransformationsTotal", - "vectorsdbDatabasesTotal", - "vectorsdbCollectionsTotal", - "vectorsdbDocumentsTotal", - "vectorsdbDatabasesStorageTotal", - "vectorsdbDatabasesReadsTotal", - "vectorsdbDatabasesWritesTotal", - "vectorsdbDatabases", - "vectorsdbCollections", - "vectorsdbDocuments", - "vectorsdbDatabasesStorage", - "vectorsdbDatabasesReads", - "vectorsdbDatabasesWrites", - "embeddingsText", - "embeddingsTextTokens", - "embeddingsTextDuration", - "embeddingsTextErrors", - "embeddingsTextTotal", - "embeddingsTextTokensTotal", - "embeddingsTextDurationTotal", - "embeddingsTextErrorsTotal", - "functionsExecutions", - "functionsExecutionsTotal", - "sitesExecutions", - "sitesExecutionsTotal", - "networkTotal", - "backupsStorageTotal", - "screenshotsGenerated", - "screenshotsGeneratedTotal", - "imagineCredits", - "imagineCreditsTotal", - "realtimeConnectionsTotal", - "realtimeMessagesTotal", - "realtimeBandwidthTotal", - "realtimeConnections", - "realtimeMessages", - "realtimeBandwidth" + "$id", + "$createdAt", + "$updatedAt", + "name", + "emailTotal", + "smsTotal", + "pushTotal", + "subscribe" ], "example": { - "executionsTotal": 0, - "documentsTotal": 0, - "documentsdbDocumentsTotal": 0, - "rowsTotal": 0, - "databasesTotal": 0, - "documentsdbTotal": 0, - "databasesStorageTotal": 0, - "documentsdbDatabasesStorageTotal": 0, - "usersTotal": 0, - "filesStorageTotal": 0, - "functionsStorageTotal": 0, - "buildsStorageTotal": 0, - "deploymentsStorageTotal": 0, - "bucketsTotal": 0, - "executionsMbSecondsTotal": 0, - "buildsMbSecondsTotal": 0, - "databasesReadsTotal": 0, - "databasesWritesTotal": 0, - "documentsdbDatabasesReadsTotal": 0, - "documentsdbDatabasesWritesTotal": 0, - "requests": [], - "network": [], - "users": [], - "executions": [], - "executionsBreakdown": [], - "bucketsBreakdown": [], - "databasesStorageBreakdown": [], - "executionsMbSecondsBreakdown": [], - "buildsMbSecondsBreakdown": [], - "functionsStorageBreakdown": [], - "authPhoneTotal": 0, - "authPhoneEstimate": 0, - "authPhoneCountryBreakdown": [], - "databasesReads": [], - "databasesWrites": [], - "documentsdbDatabasesReads": [], - "documentsdbDatabasesWrites": [], - "documentsdbDatabasesStorage": [], - "imageTransformations": [], - "imageTransformationsTotal": 0, - "vectorsdbDatabasesTotal": 0, - "vectorsdbCollectionsTotal": 0, - "vectorsdbDocumentsTotal": 0, - "vectorsdbDatabasesStorageTotal": 0, - "vectorsdbDatabasesReadsTotal": 0, - "vectorsdbDatabasesWritesTotal": 0, - "vectorsdbDatabases": [], - "vectorsdbCollections": [], - "vectorsdbDocuments": [], - "vectorsdbDatabasesStorage": [], - "vectorsdbDatabasesReads": [], - "vectorsdbDatabasesWrites": [], - "embeddingsText": [], - "embeddingsTextTokens": [], - "embeddingsTextDuration": [], - "embeddingsTextErrors": [], - "embeddingsTextTotal": 0, - "embeddingsTextTokensTotal": 0, - "embeddingsTextDurationTotal": 0, - "embeddingsTextErrorsTotal": 0, - "functionsExecutions": [], - "functionsExecutionsTotal": 0, - "sitesExecutions": [], - "sitesExecutionsTotal": 0, - "networkTotal": 0, - "backupsStorageTotal": 0, - "screenshotsGenerated": [], - "screenshotsGeneratedTotal": 0, - "imagineCredits": [], - "imagineCreditsTotal": 0, - "realtimeConnectionsTotal": 0, - "realtimeMessagesTotal": 0, - "realtimeBandwidthTotal": 0, - "realtimeConnections": [], - "realtimeMessages": [], - "realtimeBandwidth": [] + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "name": "events", + "emailTotal": 100, + "smsTotal": 100, + "pushTotal": 100, + "subscribe": "users" } }, - "headers": { - "description": "Headers", + "transaction": { + "description": "Transaction", "type": "object", "properties": { - "name": { + "$id": { "type": "string", - "description": "Header name.", - "x-example": "Content-Type" + "description": "Transaction ID.", + "x-example": "259125845563242502" }, - "value": { + "$createdAt": { "type": "string", - "description": "Header value.", - "x-example": "application\/json" - } - }, - "required": [ - "name", - "value" - ], - "example": { - "name": "Content-Type", - "value": "application\/json" - } - }, - "specification": { - "description": "Specification", - "type": "object", - "properties": { - "memory": { - "type": "integer", - "description": "Memory size in MB.", - "x-example": 512, - "format": "int32" + "description": "Transaction creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "cpus": { - "type": "number", - "description": "Number of CPUs.", - "x-example": 1, - "format": "double" + "$updatedAt": { + "type": "string", + "description": "Transaction update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "enabled": { - "type": "boolean", - "description": "Is size enabled.", - "x-example": true + "status": { + "type": "string", + "description": "Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.", + "x-example": "pending" }, - "slug": { + "operations": { + "type": "integer", + "description": "Number of operations in the transaction.", + "x-example": 5, + "format": "int32" + }, + "expiresAt": { "type": "string", - "description": "Size slug.", - "x-example": "s-1vcpu-512mb" + "description": "Expiration time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ - "memory", - "cpus", - "enabled", - "slug" + "$id", + "$createdAt", + "$updatedAt", + "status", + "operations", + "expiresAt" ], "example": { - "memory": 512, - "cpus": 1, - "enabled": true, - "slug": "s-1vcpu-512mb" + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "status": "pending", + "operations": 5, + "expiresAt": "2020-10-15T06:38:00.000+00:00" } }, - "proxyRule": { - "description": "Rule", + "subscriber": { + "description": "Subscriber", "type": "object", "properties": { "$id": { "type": "string", - "description": "Rule ID.", - "x-example": "5e5ea5c16897e" + "description": "Subscriber ID.", + "x-example": "259125845563242502" }, "$createdAt": { "type": "string", - "description": "Rule creation date in ISO 8601 format.", + "description": "Subscriber creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Rule update date in ISO 8601 format.", + "description": "Subscriber update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "domain": { + "targetId": { "type": "string", - "description": "Domain name.", - "x-example": "appwrite.company.com" + "description": "Target ID.", + "x-example": "259125845563242502" }, - "type": { + "target": { + "type": "object", + "description": "Target.", + "x-example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "providerId": "259125845563242502", + "name": "ageon-app-email", + "identifier": "random-mail@email.org", + "userId": "5e5ea5c16897e" + }, + "items": { + "$ref": "#\/components\/schemas\/target" + } + }, + "userId": { "type": "string", - "description": "Action definition for the rule. Possible values are \"api\", \"deployment\", or \"redirect\"", - "x-example": "deployment" + "description": "Topic ID.", + "x-example": "5e5ea5c16897e" }, - "trigger": { + "userName": { "type": "string", - "description": "Defines how the rule was created. Possible values are \"manual\" or \"deployment\"", - "x-example": "manual" + "description": "User Name.", + "x-example": "Aegon Targaryen" }, - "redirectUrl": { + "topicId": { "type": "string", - "description": "URL to redirect to. Used if type is \"redirect\"", - "x-example": "https:\/\/appwrite.io\/docs" + "description": "Topic ID.", + "x-example": "259125845563242502" }, - "redirectStatusCode": { - "type": "integer", - "description": "Status code to apply during redirect. Used if type is \"redirect\"", - "x-example": 301, - "format": "int32" + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "x-example": "email" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "targetId", + "target", + "userId", + "userName", + "topicId", + "providerType" + ], + "example": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "targetId": "259125845563242502", + "target": { + "$id": "259125845563242502", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "providerType": "email", + "providerId": "259125845563242502", + "name": "ageon-app-email", + "identifier": "random-mail@email.org", + "userId": "5e5ea5c16897e" }, - "deploymentId": { + "userId": "5e5ea5c16897e", + "userName": "Aegon Targaryen", + "topicId": "259125845563242502", + "providerType": "email" + } + }, + "target": { + "description": "Target", + "type": "object", + "properties": { + "$id": { "type": "string", - "description": "ID of deployment. Used if type is \"deployment\"", - "x-example": "n3u9feiwmf" + "description": "Target ID.", + "x-example": "259125845563242502" }, - "deploymentResourceType": { + "$createdAt": { "type": "string", - "description": "Type of deployment. Possible values are \"function\", \"site\". Used if rule's type is \"deployment\".", - "x-example": "function", - "enum": [ - "function", - "site" - ], - "nullable": true + "description": "Target creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "deploymentResourceId": { + "$updatedAt": { "type": "string", - "description": "ID of deployment's resource (site or function ID). Used if type is \"deployment\"", - "x-example": "n3u9feiwmf" + "description": "Target update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "deploymentVcsProviderBranch": { + "name": { "type": "string", - "description": "Name of Git branch that updates rule. Used if type is \"deployment\"", - "x-example": "main" + "description": "Target Name.", + "x-example": "Apple iPhone 12" }, - "status": { + "userId": { "type": "string", - "description": "Domain verification status. Possible values are \"unverified\", \"verifying\", \"verified\"", - "x-example": "verified", - "enum": [ - "unverified", - "verifying", - "verified" - ] + "description": "User ID.", + "x-example": "259125845563242502" }, - "logs": { + "providerId": { "type": "string", - "description": "Logs from rule verification or certificate generation. Certificate generation logs are prioritized if both are available.", - "x-example": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record." + "description": "Provider ID.", + "x-example": "259125845563242502", + "nullable": true }, - "renewAt": { + "providerType": { "type": "string", - "description": "Certificate auto-renewal date in ISO 8601 format.", - "x-example": "datetime" + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "x-example": "email" + }, + "identifier": { + "type": "string", + "description": "The target identifier.", + "x-example": "token" + }, + "expired": { + "type": "boolean", + "description": "Is the target expired.", + "x-example": false } }, "required": [ "$id", "$createdAt", "$updatedAt", - "domain", - "type", - "trigger", - "redirectUrl", - "redirectStatusCode", - "deploymentId", - "deploymentResourceId", - "deploymentVcsProviderBranch", - "status", - "logs", - "renewAt" + "name", + "userId", + "providerType", + "identifier", + "expired" ], "example": { - "$id": "5e5ea5c16897e", + "$id": "259125845563242502", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "domain": "appwrite.company.com", - "type": "deployment", - "trigger": "manual", - "redirectUrl": "https:\/\/appwrite.io\/docs", - "redirectStatusCode": 301, - "deploymentId": "n3u9feiwmf", - "deploymentResourceType": "function", - "deploymentResourceId": "n3u9feiwmf", - "deploymentVcsProviderBranch": "main", - "status": "verified", - "logs": "Verification of DNS records failed with DNS resolver 8.8.8.8. Domain stage.myapp.com does not have DNS record.", - "renewAt": "datetime" + "name": "Apple iPhone 12", + "userId": "259125845563242502", + "providerId": "259125845563242502", + "providerType": "email", + "identifier": "token", + "expired": false } }, - "schedule": { - "description": "Schedule", + "migration": { + "description": "Migration", "type": "object", "properties": { "$id": { "type": "string", - "description": "Schedule ID.", + "description": "Migration ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Schedule creation date in ISO 8601 format.", + "description": "Migration creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Schedule update date in ISO 8601 format.", + "description": "Variable creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "resourceType": { + "status": { "type": "string", - "description": "The resource type associated with this schedule.", - "x-example": "function" + "description": "Migration status ( pending, processing, failed, completed ) ", + "x-example": "pending" }, - "resourceId": { + "stage": { "type": "string", - "description": "The resource ID associated with this schedule.", - "x-example": "5e5ea5c16897e" + "description": "Migration stage ( init, processing, source-check, destination-check, migrating, finished )", + "x-example": "init" }, - "resourceUpdatedAt": { + "source": { "type": "string", - "description": "Change-tracking timestamp used by the scheduler to detect resource changes in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "A string containing the type of source of the migration.", + "x-example": "Appwrite" }, - "projectId": { + "destination": { "type": "string", - "description": "The project ID associated with this schedule.", - "x-example": "5e5ea5c16897e" + "description": "A string containing the type of destination of the migration.", + "x-example": "Appwrite" }, - "schedule": { + "resources": { + "type": "array", + "description": "Resources to migrate.", + "items": { + "type": "string" + }, + "x-example": [ + "user" + ] + }, + "resourceId": { "type": "string", - "description": "The CRON schedule expression.", - "x-example": "5 4 * * *" + "description": "Id of the resource to migrate.", + "x-example": "databaseId:collectionId" }, - "data": { + "statusCounters": { "type": "object", - "description": "Schedule data used to store resource-specific context needed for execution.", - "x-example": [] + "description": "A group of counters that represent the total progress of the migration.", + "x-example": "{\"Database\": {\"PENDING\": 0, \"SUCCESS\": 1, \"ERROR\": 0, \"SKIP\": 0, \"PROCESSING\": 0, \"WARNING\": 0}}" }, - "active": { - "type": "boolean", - "description": "Whether the schedule is active.", - "x-example": true + "resourceData": { + "type": "object", + "description": "An array of objects containing the report data of the resources that were migrated.", + "x-example": "[{\"resource\":\"Database\",\"id\":\"public\",\"status\":\"SUCCESS\",\"message\":\"\"}]" }, - "region": { - "type": "string", - "description": "The region where the schedule is deployed.", - "x-example": "fra" + "errors": { + "type": "array", + "description": "All errors that occurred during the migration process.", + "items": { + "type": "string" + }, + "x-example": [] + }, + "options": { + "type": "object", + "description": "Migration options used during the migration process.", + "x-example": "{\"bucketId\": \"exports\", \"notify\": false}" } }, "required": [ "$id", "$createdAt", "$updatedAt", - "resourceType", + "status", + "stage", + "source", + "destination", + "resources", "resourceId", - "resourceUpdatedAt", - "projectId", - "schedule", - "data", - "active", - "region" + "statusCounters", + "resourceData", + "errors", + "options" ], "example": { "$id": "5e5ea5c16897e", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "resourceType": "function", - "resourceId": "5e5ea5c16897e", - "resourceUpdatedAt": "2020-10-15T06:38:00.000+00:00", - "projectId": "5e5ea5c16897e", - "schedule": "5 4 * * *", - "data": [], - "active": true, - "region": "fra" + "status": "pending", + "stage": "init", + "source": "Appwrite", + "destination": "Appwrite", + "resources": [ + "user" + ], + "resourceId": "databaseId:collectionId", + "statusCounters": "{\"Database\": {\"PENDING\": 0, \"SUCCESS\": 1, \"ERROR\": 0, \"SKIP\": 0, \"PROCESSING\": 0, \"WARNING\": 0}}", + "resourceData": "[{\"resource\":\"Database\",\"id\":\"public\",\"status\":\"SUCCESS\",\"message\":\"\"}]", + "errors": [], + "options": "{\"bucketId\": \"exports\", \"notify\": false}" } }, - "emailTemplate": { - "description": "EmailTemplate", + "migrationReport": { + "description": "Migration Report", "type": "object", "properties": { - "templateId": { - "type": "string", - "description": "Template type", - "x-example": "verification" + "user": { + "type": "integer", + "description": "Number of users to be migrated.", + "x-example": 20, + "format": "int32" }, - "locale": { - "type": "string", - "description": "Template locale", - "x-example": "en_us" + "team": { + "type": "integer", + "description": "Number of teams to be migrated.", + "x-example": 20, + "format": "int32" }, - "message": { - "type": "string", - "description": "Template message", - "x-example": "Click on the link to verify your account." + "database": { + "type": "integer", + "description": "Number of databases to be migrated.", + "x-example": 20, + "format": "int32" }, - "senderName": { - "type": "string", - "description": "Name of the sender", - "x-example": "My User" + "row": { + "type": "integer", + "description": "Number of rows to be migrated.", + "x-example": 20, + "format": "int32" }, - "senderEmail": { - "type": "string", - "description": "Email of the sender", - "x-example": "mail@appwrite.io" + "file": { + "type": "integer", + "description": "Number of files to be migrated.", + "x-example": 20, + "format": "int32" }, - "replyToEmail": { - "type": "string", - "description": "Reply to email address", - "x-example": "emails@appwrite.io" + "bucket": { + "type": "integer", + "description": "Number of buckets to be migrated.", + "x-example": 20, + "format": "int32" }, - "replyToName": { - "type": "string", - "description": "Reply to name", - "x-example": "Support Team" + "function": { + "type": "integer", + "description": "Number of functions to be migrated.", + "x-example": 20, + "format": "int32" }, - "subject": { - "type": "string", - "description": "Email subject", - "x-example": "Please verify your email address" - } - }, - "required": [ - "templateId", - "locale", - "message", - "senderName", - "senderEmail", - "replyToEmail", - "replyToName", - "subject" - ], - "example": { - "templateId": "verification", - "locale": "en_us", - "message": "Click on the link to verify your account.", - "senderName": "My User", - "senderEmail": "mail@appwrite.io", - "replyToEmail": "emails@appwrite.io", - "replyToName": "Support Team", - "subject": "Please verify your email address" - } - }, - "consoleVariables": { - "description": "Console Variables", - "type": "object", - "properties": { - "_APP_DOMAIN_TARGET_CNAME": { - "type": "string", - "description": "CNAME target for your Appwrite custom domains.", - "x-example": "appwrite.io" + "platform": { + "type": "integer", + "description": "Number of platforms to be migrated.", + "x-example": 5, + "format": "int32" }, - "_APP_DOMAIN_TARGET_A": { - "type": "string", - "description": "A target for your Appwrite custom domains.", - "x-example": "127.0.0.1" + "site": { + "type": "integer", + "description": "Number of sites to be migrated.", + "x-example": 5, + "format": "int32" }, - "_APP_COMPUTE_BUILD_TIMEOUT": { + "provider": { "type": "integer", - "description": "Maximum build timeout in seconds.", - "x-example": 900, + "description": "Number of providers to be migrated.", + "x-example": 5, "format": "int32" }, - "_APP_DOMAIN_TARGET_AAAA": { - "type": "string", - "description": "AAAA target for your Appwrite custom domains.", - "x-example": "::1" + "topic": { + "type": "integer", + "description": "Number of topics to be migrated.", + "x-example": 10, + "format": "int32" }, - "_APP_DOMAIN_TARGET_CAA": { - "type": "string", - "description": "CAA target for your Appwrite custom domains.", - "x-example": "digicert.com" + "subscriber": { + "type": "integer", + "description": "Number of subscribers to be migrated.", + "x-example": 100, + "format": "int32" }, - "_APP_STORAGE_LIMIT": { + "message": { "type": "integer", - "description": "Maximum file size allowed for file upload in bytes.", - "x-example": "30000000", + "description": "Number of messages to be migrated.", + "x-example": 50, "format": "int32" }, - "_APP_COMPUTE_SIZE_LIMIT": { + "size": { "type": "integer", - "description": "Maximum file size allowed for deployment in bytes.", - "x-example": "30000000", + "description": "Size of files to be migrated in mb.", + "x-example": 30000, "format": "int32" }, - "_APP_USAGE_STATS": { + "version": { "type": "string", - "description": "Defines if usage stats are enabled. This value is set to 'enabled' by default, to disable the usage stats set the value to 'disabled'.", - "x-example": "enabled" - }, - "_APP_VCS_ENABLED": { - "type": "boolean", - "description": "Defines if VCS (Version Control System) is enabled.", - "x-example": true - }, - "_APP_DOMAIN_ENABLED": { - "type": "boolean", - "description": "Defines if main domain is configured. If so, custom domains can be created.", - "x-example": true - }, - "_APP_ASSISTANT_ENABLED": { - "type": "boolean", - "description": "Defines if AI assistant is enabled.", - "x-example": true + "description": "Version of the Appwrite instance to be migrated.", + "x-example": "1.4.0" }, - "_APP_DOMAIN_SITES": { + "backup-policy": { + "type": "integer", + "description": "Number of backup policies to be migrated.", + "x-example": 5, + "format": "int32" + } + }, + "required": [ + "user", + "team", + "database", + "row", + "file", + "bucket", + "function", + "platform", + "site", + "provider", + "topic", + "subscriber", + "message", + "size", + "version", + "backup-policy" + ], + "example": { + "user": 20, + "team": 20, + "database": 20, + "row": 20, + "file": 20, + "bucket": 20, + "function": 20, + "platform": 5, + "site": 5, + "provider": 5, + "topic": 10, + "subscriber": 100, + "message": 50, + "size": 30000, + "version": "1.4.0", + "backup-policy": 5 + } + }, + "insight": { + "description": "Insight", + "type": "object", + "properties": { + "$id": { "type": "string", - "description": "A comma separated list of domains to use for site URLs.", - "x-example": "sites.localhost,sites.example.com" + "description": "Insight ID.", + "x-example": "5e5ea5c16897e" }, - "_APP_DOMAIN_FUNCTIONS": { + "$createdAt": { "type": "string", - "description": "A domain to use for function URLs.", - "x-example": "functions.localhost" + "description": "Insight creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "_APP_OPTIONS_FORCE_HTTPS": { + "$updatedAt": { "type": "string", - "description": "Defines if HTTPS is enforced for all requests.", - "x-example": "enabled" + "description": "Insight update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "_APP_DOMAINS_NAMESERVERS": { + "reportId": { "type": "string", - "description": "Comma-separated list of nameservers.", - "x-example": "ns1.example.com,ns2.example.com" + "description": "Parent report ID. Insights always belong to a report.", + "x-example": "5e5ea5c16897e" }, - "_APP_DB_ADAPTER": { + "type": { "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 + "description": "Insight type. One of databaseIndex (legacy), tablesDBIndex, documentsDBIndex, vectorsDBIndex, databasePerformance, sitePerformance, siteAccessibility, siteSeo, functionPerformance. The index types are engine-specific so each CTA can pair the right service+method (databases.createIndex, tablesDB.createIndex, documentsDB.createIndex, or vectorsDB.createIndex).", + "x-example": "tablesDBIndex" }, - "maxIndexLength": { - "type": "integer", - "description": "Maximum index length supported by the database adapter.", - "x-example": 768, - "format": "int32" + "severity": { + "type": "string", + "description": "Insight severity. One of info, warning, critical.", + "x-example": "warning" }, - "supportForIntegerIds": { - "type": "boolean", - "description": "Whether the database adapter uses integer sequence IDs.", - "x-example": true + "status": { + "type": "string", + "description": "Insight status. One of active, dismissed.", + "x-example": "active" }, - "_APP_CONSOLE_EMAIL_VERIFICATION": { + "resourceType": { "type": "string", - "description": "Whether email verification for console users is required. Can be \"true\" or \"false\".", - "x-example": "true" - } - }, - "required": [ - "_APP_DOMAIN_TARGET_CNAME", - "_APP_DOMAIN_TARGET_A", - "_APP_COMPUTE_BUILD_TIMEOUT", - "_APP_DOMAIN_TARGET_AAAA", - "_APP_DOMAIN_TARGET_CAA", - "_APP_STORAGE_LIMIT", - "_APP_COMPUTE_SIZE_LIMIT", - "_APP_USAGE_STATS", - "_APP_VCS_ENABLED", - "_APP_DOMAIN_ENABLED", - "_APP_ASSISTANT_ENABLED", - "_APP_DOMAIN_SITES", - "_APP_DOMAIN_FUNCTIONS", - "_APP_OPTIONS_FORCE_HTTPS", - "_APP_DOMAINS_NAMESERVERS", - "_APP_DB_ADAPTER", - "supportForRelationships", - "supportForOperators", - "supportForSpatials", - "supportForSpatialIndexNull", - "supportForFulltextWildcard", - "supportForMultipleFulltextIndexes", - "supportForAttributeResizing", - "supportForSchemas", - "maxIndexLength", - "supportForIntegerIds", - "_APP_CONSOLE_EMAIL_VERIFICATION" - ], - "example": { - "_APP_DOMAIN_TARGET_CNAME": "appwrite.io", - "_APP_DOMAIN_TARGET_A": "127.0.0.1", - "_APP_COMPUTE_BUILD_TIMEOUT": 900, - "_APP_DOMAIN_TARGET_AAAA": "::1", - "_APP_DOMAIN_TARGET_CAA": "digicert.com", - "_APP_STORAGE_LIMIT": "30000000", - "_APP_COMPUTE_SIZE_LIMIT": "30000000", - "_APP_USAGE_STATS": "enabled", - "_APP_VCS_ENABLED": true, - "_APP_DOMAIN_ENABLED": true, - "_APP_ASSISTANT_ENABLED": true, - "_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_DB_ADAPTER": "mysql", - "supportForRelationships": true, - "supportForOperators": true, - "supportForSpatials": true, - "supportForSpatialIndexNull": false, - "supportForFulltextWildcard": true, - "supportForMultipleFulltextIndexes": true, - "supportForAttributeResizing": true, - "supportForSchemas": true, - "maxIndexLength": 768, - "supportForIntegerIds": true, - "_APP_CONSOLE_EMAIL_VERIFICATION": "true" - } - }, - "consoleOAuth2ProviderParameter": { - "description": "Console OAuth2 Provider Parameter", - "type": "object", - "properties": { - "$id": { + "description": "Type of the resource the insight is about. Plural noun, e.g. databases, sites, functions.", + "x-example": "databases" + }, + "resourceId": { "type": "string", - "description": "Parameter ID. Maps to the request body field used by the project OAuth2 update endpoint (e.g. `clientId`, `appKey`, `tenant`).", - "x-example": "clientId" + "description": "ID of the resource the insight is about.", + "x-example": "main" }, - "name": { + "parentResourceType": { "type": "string", - "description": "Verbose, user-facing parameter name as shown in the provider's own dashboard. Includes alternate names when the provider exposes more than one.", - "x-example": "Client ID or App ID" + "description": "Plural noun for the parent resource that contains the insight's resource, e.g. an insight about a column index on a table \u2192 resourceType=indexes, parentResourceType=tables. Empty when the resource has no parent.", + "x-example": "tables" }, - "example": { + "parentResourceId": { "type": "string", - "description": "Example value for this parameter.", - "x-example": "e4d87900000000540733" + "description": "ID of the parent resource. Empty when the resource has no parent.", + "x-example": "orders" }, - "hint": { + "title": { "type": "string", - "description": "Optional hint for this parameter, typically calling out a common wrong value. Empty string when no hint is set.", - "x-example": "Example of wrong value: 370006" - } - }, - "required": [ - "$id", - "name", - "example", - "hint" - ], - "example": { - "$id": "clientId", - "name": "Client ID or App ID", - "example": "e4d87900000000540733", - "hint": "Example of wrong value: 370006" - } - }, - "consoleOAuth2Provider": { - "description": "Console OAuth2 Provider", - "type": "object", - "properties": { - "$id": { + "description": "Insight title.", + "x-example": "Missing index on collection orders" + }, + "summary": { "type": "string", - "description": "OAuth2 provider ID.", - "x-example": "github" + "description": "Short markdown summary describing the insight.", + "x-example": "Queries against `orders.status` are scanning the full collection." }, - "parameters": { + "ctas": { "type": "array", - "description": "List of parameters required to configure this OAuth2 provider.", + "description": "List of call-to-action buttons attached to this insight.", "items": { - "$ref": "#\/components\/schemas\/consoleOAuth2ProviderParameter" + "$ref": "#\/components\/schemas\/insightCTA" }, - "x-example": "" - } - }, - "required": [ - "$id", - "parameters" - ], - "example": { - "$id": "github", - "parameters": "" - } - }, - "consoleOAuth2ProviderList": { - "description": "Console OAuth2 Providers List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of OAuth2 providers exposed by the server.", - "x-example": 5, - "format": "int32" + "x-example": [] }, - "oAuth2Providers": { - "type": "array", - "description": "List of OAuth2 providers, each with the parameters required to configure it.", - "items": { - "$ref": "#\/components\/schemas\/consoleOAuth2Provider" - }, - "x-example": "" - } - }, - "required": [ - "total", - "oAuth2Providers" - ], - "example": { - "total": 5, - "oAuth2Providers": "" - } - }, - "consoleKeyScope": { - "description": "Console Key Scope", - "type": "object", - "properties": { - "$id": { + "analyzedAt": { "type": "string", - "description": "Scope ID.", - "x-example": "users.read" + "description": "Time the insight was analyzed in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true }, - "description": { + "dismissedAt": { "type": "string", - "description": "Scope description.", - "x-example": "Access to read your project's users" + "description": "Time the insight was dismissed in ISO 8601 format. Empty when not dismissed.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true }, - "category": { + "dismissedBy": { "type": "string", - "description": "Scope category.", - "x-example": "Auth" - }, - "deprecated": { - "type": "boolean", - "description": "Scope is deprecated.", - "x-example": true + "description": "User ID that dismissed the insight. Empty when not dismissed.", + "x-example": "5e5ea5c16897e", + "nullable": true } }, "required": [ "$id", - "description", - "category", - "deprecated" + "$createdAt", + "$updatedAt", + "reportId", + "type", + "severity", + "status", + "resourceType", + "resourceId", + "parentResourceType", + "parentResourceId", + "title", + "summary", + "ctas" ], "example": { - "$id": "users.read", - "description": "Access to read your project's users", - "category": "Auth", - "deprecated": true + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "reportId": "5e5ea5c16897e", + "type": "tablesDBIndex", + "severity": "warning", + "status": "active", + "resourceType": "databases", + "resourceId": "main", + "parentResourceType": "tables", + "parentResourceId": "orders", + "title": "Missing index on collection orders", + "summary": "Queries against `orders.status` are scanning the full collection.", + "ctas": [], + "analyzedAt": "2020-10-15T06:38:00.000+00:00", + "dismissedAt": "2020-10-15T06:38:00.000+00:00", + "dismissedBy": "5e5ea5c16897e" } }, - "consoleKeyScopeList": { - "description": "Console Key Scopes List", + "insightCTA": { + "description": "InsightCTA", "type": "object", "properties": { - "total": { - "type": "integer", - "description": "Total number of key scopes exposed by the server.", - "x-example": 5, - "format": "int32" + "label": { + "type": "string", + "description": "Human-readable label for the CTA, used in UI.", + "x-example": "Create missing index" }, - "scopes": { - "type": "array", - "description": "List of key scopes, each with its ID and description.", - "items": { - "$ref": "#\/components\/schemas\/consoleKeyScope" - }, - "x-example": "" + "service": { + "type": "string", + "description": "Public API service (SDK namespace) the client should invoke. Must match the engine that owns the resource \u2014 for index suggestions: databases (legacy), tablesDB, documentsDB, or vectorsDB.", + "x-example": "tablesDB" + }, + "method": { + "type": "string", + "description": "Public API method on the chosen service the client should invoke when this CTA is triggered.", + "x-example": "createIndex" + }, + "params": { + "type": "object", + "description": "Parameter map the client should pass to the service method when this CTA is triggered. Keys match the target API's parameter names (e.g. databaseId\/tableId\/columns for tablesDB, databaseId\/collectionId\/attributes for the legacy Databases API).", + "x-example": { + "databaseId": "main", + "tableId": "orders", + "key": "_idx_status", + "type": "key", + "columns": [ + "status" + ] + } } }, "required": [ - "total", - "scopes" + "label", + "service", + "method", + "params" ], "example": { - "total": 5, - "scopes": "" + "label": "Create missing index", + "service": "tablesDB", + "method": "createIndex", + "params": { + "databaseId": "main", + "tableId": "orders", + "key": "_idx_status", + "type": "key", + "columns": [ + "status" + ] + } } }, - "mfaChallenge": { - "description": "MFA Challenge", + "report": { + "description": "Report", "type": "object", "properties": { "$id": { "type": "string", - "description": "Token ID.", - "x-example": "bb8ea5c16897e" + "description": "Report ID.", + "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Token creation date in ISO 8601 format.", + "description": "Report creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "userId": { + "$updatedAt": { "type": "string", - "description": "User ID.", - "x-example": "5e5ea5c168bb8" + "description": "Report update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "expire": { + "appId": { "type": "string", - "description": "Token expiration date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - } - }, - "required": [ - "$id", - "$createdAt", - "userId", - "expire" - ], - "example": { - "$id": "bb8ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "userId": "5e5ea5c168bb8", - "expire": "2020-10-15T06:38:00.000+00:00" - } - }, - "mfaRecoveryCodes": { - "description": "MFA Recovery Codes", - "type": "object", - "properties": { - "recoveryCodes": { + "description": "ID of the third-party app that submitted the report.", + "x-example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Analyzer that produced this report. e.g. lighthouse, audit, databaseAnalyzer.", + "x-example": "lighthouse" + }, + "title": { + "type": "string", + "description": "Short, human-readable title for the report.", + "x-example": "Lighthouse audit for https:\/\/appwrite.io\/" + }, + "summary": { + "type": "string", + "description": "Markdown summary describing the report.", + "x-example": "Performance score 78. 4 opportunities found." + }, + "targetType": { + "type": "string", + "description": "Plural noun describing what the report analyzes, e.g. databases, sites, urls.", + "x-example": "urls" + }, + "target": { + "type": "string", + "description": "Free-form target identifier (URL for lighthouse, resource ID for db).", + "x-example": "https:\/\/appwrite.io\/" + }, + "categories": { "type": "array", - "description": "Recovery codes.", + "description": "Categories covered by the report, e.g. performance, accessibility.", "items": { "type": "string" }, "x-example": [ - "a3kf0-s0cl2", - "s0co1-as98s" + "performance", + "accessibility" ] + }, + "insights": { + "type": "array", + "description": "Insights nested under this report.", + "items": { + "$ref": "#\/components\/schemas\/insight" + }, + "x-example": [] + }, + "analyzedAt": { + "type": "string", + "description": "Time the report was analyzed in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true } }, "required": [ - "recoveryCodes" + "$id", + "$createdAt", + "$updatedAt", + "appId", + "type", + "title", + "summary", + "targetType", + "target", + "categories", + "insights" ], "example": { - "recoveryCodes": [ - "a3kf0-s0cl2", - "s0co1-as98s" - ] + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "appId": "5e5ea5c16897e", + "type": "lighthouse", + "title": "Lighthouse audit for https:\/\/appwrite.io\/", + "summary": "Performance score 78. 4 opportunities found.", + "targetType": "urls", + "target": "https:\/\/appwrite.io\/", + "categories": [ + "performance", + "accessibility" + ], + "insights": [], + "analyzedAt": "2020-10-15T06:38:00.000+00:00" } }, - "mfaType": { - "description": "MFAType", + "activityEvent": { + "description": "ActivityEvent", "type": "object", "properties": { - "secret": { + "$id": { "type": "string", - "description": "Secret token used for TOTP factor.", - "x-example": "[SHARED_SECRET]" + "description": "Event ID.", + "x-example": "5e5ea5c16897e" }, - "uri": { + "actorType": { "type": "string", - "description": "URI for authenticator apps.", - "x-example": "otpauth:\/\/totp\/appwrite:user@example.com?secret=[SHARED_SECRET]&issuer=appwrite" - } - }, - "required": [ - "secret", - "uri" - ], - "example": { - "secret": "[SHARED_SECRET]", - "uri": "otpauth:\/\/totp\/appwrite:user@example.com?secret=[SHARED_SECRET]&issuer=appwrite" - } - }, - "mfaFactors": { - "description": "MFAFactors", - "type": "object", - "properties": { - "totp": { - "type": "boolean", - "description": "Can TOTP be used for MFA challenge for this account.", - "x-example": true + "description": "Actor type.", + "x-example": "user" }, - "phone": { - "type": "boolean", - "description": "Can phone (SMS) be used for MFA challenge for this account.", - "x-example": true + "actorId": { + "type": "string", + "description": "Actor ID.", + "x-example": "610fc2f985ee0" }, - "email": { - "type": "boolean", - "description": "Can email be used for MFA challenge for this account.", - "x-example": true + "actorEmail": { + "type": "string", + "description": "Actor Email.", + "x-example": "john@appwrite.io" }, - "recoveryCode": { - "type": "boolean", - "description": "Can recovery code be used for MFA challenge for this account.", - "x-example": true + "actorName": { + "type": "string", + "description": "Actor Name.", + "x-example": "John Doe" + }, + "resourceParent": { + "type": "string", + "description": "Resource parent.", + "x-example": "database\/ID" + }, + "resourceType": { + "type": "string", + "description": "Resource type.", + "x-example": "collection" + }, + "resourceId": { + "type": "string", + "description": "Resource ID.", + "x-example": "610fc2f985ee0" + }, + "resource": { + "type": "string", + "description": "Resource.", + "x-example": "collections\/610fc2f985ee0" + }, + "event": { + "type": "string", + "description": "Event name.", + "x-example": "account.sessions.create" + }, + "userAgent": { + "type": "string", + "description": "User agent.", + "x-example": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/86.0.4240.198 Safari\/537.36" + }, + "ip": { + "type": "string", + "description": "IP address.", + "x-example": "127.0.0.1" + }, + "mode": { + "type": "string", + "description": "API mode when event triggered.", + "x-example": "admin" + }, + "country": { + "type": "string", + "description": "Location.", + "x-example": "US" + }, + "time": { + "type": "string", + "description": "Log creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "x-example": "610fc2f985ee0" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "x-example": "610fc2f985ee0" + }, + "hostname": { + "type": "string", + "description": "Hostname.", + "x-example": "appwrite.io" + }, + "osCode": { + "type": "string", + "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", + "x-example": "Mac" + }, + "osName": { + "type": "string", + "description": "Operating system name.", + "x-example": "Mac" + }, + "osVersion": { + "type": "string", + "description": "Operating system version.", + "x-example": "Mac" + }, + "clientType": { + "type": "string", + "description": "Client type.", + "x-example": "browser" + }, + "clientCode": { + "type": "string", + "description": "Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).", + "x-example": "CM" + }, + "clientName": { + "type": "string", + "description": "Client name.", + "x-example": "Chrome Mobile iOS" + }, + "clientVersion": { + "type": "string", + "description": "Client version.", + "x-example": "84.0" + }, + "clientEngine": { + "type": "string", + "description": "Client engine name.", + "x-example": "WebKit" + }, + "clientEngineVersion": { + "type": "string", + "description": "Client engine name.", + "x-example": "605.1.15" + }, + "deviceName": { + "type": "string", + "description": "Device name.", + "x-example": "smartphone" + }, + "deviceBrand": { + "type": "string", + "description": "Device brand name.", + "x-example": "Google" + }, + "deviceModel": { + "type": "string", + "description": "Device model name.", + "x-example": "Nexus 5" + }, + "countryCode": { + "type": "string", + "description": "Country two-character ISO 3166-1 alpha code.", + "x-example": "US" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "x-example": "United States" } }, "required": [ - "totp", - "phone", - "email", - "recoveryCode" + "$id", + "actorType", + "actorId", + "actorEmail", + "actorName", + "resourceParent", + "resourceType", + "resourceId", + "resource", + "event", + "userAgent", + "ip", + "mode", + "country", + "time", + "projectId", + "teamId", + "hostname", + "osCode", + "osName", + "osVersion", + "clientType", + "clientCode", + "clientName", + "clientVersion", + "clientEngine", + "clientEngineVersion", + "deviceName", + "deviceBrand", + "deviceModel", + "countryCode", + "countryName" ], "example": { - "totp": true, - "phone": true, - "email": true, - "recoveryCode": true + "$id": "5e5ea5c16897e", + "actorType": "user", + "actorId": "610fc2f985ee0", + "actorEmail": "john@appwrite.io", + "actorName": "John Doe", + "resourceParent": "database\/ID", + "resourceType": "collection", + "resourceId": "610fc2f985ee0", + "resource": "collections\/610fc2f985ee0", + "event": "account.sessions.create", + "userAgent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/86.0.4240.198 Safari\/537.36", + "ip": "127.0.0.1", + "mode": "admin", + "country": "US", + "time": "2020-10-15T06:38:00.000+00:00", + "projectId": "610fc2f985ee0", + "teamId": "610fc2f985ee0", + "hostname": "appwrite.io", + "osCode": "Mac", + "osName": "Mac", + "osVersion": "Mac", + "clientType": "browser", + "clientCode": "CM", + "clientName": "Chrome Mobile iOS", + "clientVersion": "84.0", + "clientEngine": "WebKit", + "clientEngineVersion": "605.1.15", + "deviceName": "smartphone", + "deviceBrand": "Google", + "deviceModel": "Nexus 5", + "countryCode": "US", + "countryName": "United States" } }, - "provider": { - "description": "Provider", + "additionalResource": { + "description": "AdditionalResource", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Provider ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { + "name": { "type": "string", - "description": "Provider creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Resource name", + "x-example": "" }, - "$updatedAt": { + "unit": { "type": "string", - "description": "Provider update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Resource unit", + "x-example": "GB" }, - "name": { + "currency": { "type": "string", - "description": "The name for the provider instance.", - "x-example": "Mailgun" + "description": "Price currency", + "x-example": "USD" }, - "provider": { - "type": "string", - "description": "The name of the provider service.", - "x-example": "mailgun" + "price": { + "type": "number", + "description": "Price", + "x-example": 5, + "format": "double" }, - "enabled": { - "type": "boolean", - "description": "Is provider enabled?", - "x-example": true + "value": { + "type": "integer", + "description": "Resource value", + "x-example": 25, + "format": "int32" }, - "type": { + "invoiceDesc": { "type": "string", - "description": "Type of provider.", - "x-example": "sms" - }, - "credentials": { - "type": "object", - "description": "Provider credentials.", - "x-example": { - "key": "123456789" - } - }, - "options": { - "type": "object", - "description": "Provider options.", - "x-example": { - "from": "sender-email@mydomain" - }, - "nullable": true + "description": "Description on invoice", + "x-example": "" } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", "name", - "provider", - "enabled", - "type", - "credentials" + "unit", + "currency", + "price", + "value", + "invoiceDesc" ], "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Mailgun", - "provider": "mailgun", - "enabled": true, - "type": "sms", - "credentials": { - "key": "123456789" - }, - "options": { - "from": "sender-email@mydomain" - } + "name": "", + "unit": "GB", + "currency": "USD", + "price": 5, + "value": 25, + "invoiceDesc": "" } }, - "message": { - "description": "Message", + "addon": { + "description": "Addon", "type": "object", "properties": { "$id": { "type": "string", - "description": "Message ID.", + "description": "Addon ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Message creation time in ISO 8601 format.", + "description": "Addon creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Message update date in ISO 8601 format.", + "description": "Addon update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "providerType": { - "type": "string", - "description": "Message provider type.", - "x-example": "email" - }, - "topics": { - "type": "array", - "description": "Topic IDs set as recipients.", - "items": { - "type": "string" - }, - "x-example": [ - "5e5ea5c16897e" - ] - }, - "users": { + "$permissions": { "type": "array", - "description": "User IDs set as recipients.", + "description": "Addon permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "items": { "type": "string" }, "x-example": [ - "5e5ea5c16897e" + "read(\"any\")" ] }, - "targets": { - "type": "array", - "description": "Target IDs set as recipients.", - "items": { - "type": "string" - }, - "x-example": [ - "5e5ea5c16897e" - ] + "key": { + "type": "string", + "description": "Addon key", + "x-example": "baa" }, - "scheduledAt": { + "resourceType": { "type": "string", - "description": "The scheduled time for message.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "description": "Resource type (organization or project)", + "x-example": "organization" }, - "deliveredAt": { + "resourceId": { "type": "string", - "description": "The time when the message was delivered.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "description": "Resource ID", + "x-example": "5e5ea5c16897e" }, - "deliveryErrors": { - "type": "array", - "description": "Delivery errors if any.", - "items": { - "type": "string" - }, - "x-example": [ - "Failed to send message to target 5e5ea5c16897e: Credentials not valid." - ], - "nullable": true + "status": { + "type": "string", + "description": "Payment status. Possible values: pending (awaiting payment confirmation e.g. 3DS), active (payment confirmed and addon is running).", + "x-example": "active" }, - "deliveredTotal": { + "currentValue": { "type": "integer", - "description": "Number of recipients the message was delivered to.", + "description": "Current value for this billing cycle. For toggle addons: 1 (on) or 0 (off). For numeric addons: the active quantity.", "x-example": 1, "format": "int32" }, - "data": { - "type": "object", - "description": "Data of the message.", - "x-example": { - "subject": "Welcome to Appwrite", - "content": "Hi there, welcome to Appwrite family." - } - }, - "status": { - "type": "string", - "description": "Status of delivery.", - "x-example": "processing", - "enum": [ - "draft", - "processing", - "scheduled", - "sent", - "failed" - ] + "nextValue": { + "type": "integer", + "description": "Value to apply at the start of the next billing cycle. Null means no change is scheduled. For toggle addons, 0 means the addon will be removed at the next cycle.", + "x-example": null, + "format": "int32", + "nullable": true } }, "required": [ "$id", "$createdAt", "$updatedAt", - "providerType", - "topics", - "users", - "targets", - "deliveredTotal", - "data", - "status" + "$permissions", + "key", + "resourceType", + "resourceId", + "status", + "currentValue" ], "example": { "$id": "5e5ea5c16897e", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "providerType": "email", - "topics": [ - "5e5ea5c16897e" - ], - "users": [ - "5e5ea5c16897e" - ], - "targets": [ - "5e5ea5c16897e" - ], - "scheduledAt": "2020-10-15T06:38:00.000+00:00", - "deliveredAt": "2020-10-15T06:38:00.000+00:00", - "deliveryErrors": [ - "Failed to send message to target 5e5ea5c16897e: Credentials not valid." + "$permissions": [ + "read(\"any\")" ], - "deliveredTotal": 1, - "data": { - "subject": "Welcome to Appwrite", - "content": "Hi there, welcome to Appwrite family." - }, - "status": "processing" + "key": "baa", + "resourceType": "organization", + "resourceId": "5e5ea5c16897e", + "status": "active", + "currentValue": 1, + "nextValue": null } }, - "topic": { - "description": "Topic", + "addonPrice": { + "description": "AddonPrice", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Topic ID.", - "x-example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Topic creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { + "addonKey": { "type": "string", - "description": "Topic update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Addon key.", + "x-example": "baa" }, "name": { "type": "string", - "description": "The name of the topic.", - "x-example": "events" + "description": "Addon display name.", + "x-example": "HIPAA BAA" }, - "emailTotal": { - "type": "integer", - "description": "Total count of email subscribers subscribed to the topic.", - "x-example": 100, - "format": "int32" + "monthlyPrice": { + "type": "number", + "description": "Full monthly price of the addon.", + "x-example": 350, + "format": "double" }, - "smsTotal": { + "proratedAmount": { + "type": "number", + "description": "Calculated prorated amount for the current billing cycle.", + "x-example": 175.5, + "format": "double" + }, + "remainingDays": { "type": "integer", - "description": "Total count of SMS subscribers subscribed to the topic.", - "x-example": 100, + "description": "Days remaining in the current billing cycle.", + "x-example": 15, "format": "int32" }, - "pushTotal": { + "totalCycleDays": { "type": "integer", - "description": "Total count of push subscribers subscribed to the topic.", - "x-example": 100, + "description": "Total days in the billing cycle.", + "x-example": 30, "format": "int32" }, - "subscribe": { - "type": "array", - "description": "Subscribe permissions.", - "items": { - "type": "string" - }, - "x-example": "users" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "name", - "emailTotal", - "smsTotal", - "pushTotal", - "subscribe" - ], - "example": { - "$id": "259125845563242502", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "events", - "emailTotal": 100, - "smsTotal": 100, - "pushTotal": 100, - "subscribe": "users" - } - }, - "transaction": { - "description": "Transaction", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Transaction ID.", - "x-example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Transaction creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Transaction update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { + "currency": { "type": "string", - "description": "Current status of the transaction. One of: pending, committing, committed, rolled_back, failed.", - "x-example": "pending" - }, - "operations": { - "type": "integer", - "description": "Number of operations in the transaction.", - "x-example": 5, - "format": "int32" + "description": "Currency code.", + "x-example": "USD" }, - "expiresAt": { + "billingCycleEnd": { "type": "string", - "description": "Expiration time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "When the current billing cycle ends.", + "x-example": "2024-02-01T00:00:00.000+00:00" } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "status", - "operations", - "expiresAt" + "addonKey", + "name", + "monthlyPrice", + "proratedAmount", + "remainingDays", + "totalCycleDays", + "currency", + "billingCycleEnd" ], "example": { - "$id": "259125845563242502", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "status": "pending", - "operations": 5, - "expiresAt": "2020-10-15T06:38:00.000+00:00" + "addonKey": "baa", + "name": "HIPAA BAA", + "monthlyPrice": 350, + "proratedAmount": 175.5, + "remainingDays": 15, + "totalCycleDays": 30, + "currency": "USD", + "billingCycleEnd": "2024-02-01T00:00:00.000+00:00" } }, - "subscriber": { - "description": "Subscriber", + "aggregationBreakdown": { + "description": "Breakdown", "type": "object", "properties": { "$id": { "type": "string", - "description": "Subscriber ID.", - "x-example": "259125845563242502" - }, - "$createdAt": { - "type": "string", - "description": "Subscriber creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Subscriber update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "targetId": { - "type": "string", - "description": "Target ID.", - "x-example": "259125845563242502" - }, - "target": { - "type": "object", - "description": "Target.", - "x-example": { - "$id": "259125845563242502", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "providerType": "email", - "providerId": "259125845563242502", - "name": "ageon-app-email", - "identifier": "random-mail@email.org", - "userId": "5e5ea5c16897e" - }, - "items": { - "$ref": "#\/components\/schemas\/target" - } - }, - "userId": { - "type": "string", - "description": "Topic ID.", + "description": "Aggregation ID.", "x-example": "5e5ea5c16897e" }, - "userName": { + "name": { "type": "string", - "description": "User Name.", - "x-example": "Aegon Targaryen" + "description": "Project name", + "x-example": "" }, - "topicId": { + "region": { "type": "string", - "description": "Topic ID.", - "x-example": "259125845563242502" + "description": "Project region", + "x-example": "fra" + }, + "amount": { + "type": "integer", + "description": "Aggregated amount", + "x-example": 2, + "format": "int32" }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "x-example": "email" + "resources": { + "type": "array", + "description": "", + "items": { + "$ref": "#\/components\/schemas\/usageResources" + }, + "x-example": "" } }, "required": [ "$id", - "$createdAt", - "$updatedAt", - "targetId", - "target", - "userId", - "userName", - "topicId", - "providerType" + "name", + "region", + "amount", + "resources" ], "example": { - "$id": "259125845563242502", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "targetId": "259125845563242502", - "target": { - "$id": "259125845563242502", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "providerType": "email", - "providerId": "259125845563242502", - "name": "ageon-app-email", - "identifier": "random-mail@email.org", - "userId": "5e5ea5c16897e" - }, - "userId": "5e5ea5c16897e", - "userName": "Aegon Targaryen", - "topicId": "259125845563242502", - "providerType": "email" + "$id": "5e5ea5c16897e", + "name": "", + "region": "fra", + "amount": 2, + "resources": "" } }, - "target": { - "description": "Target", + "aggregationTeam": { + "description": "Team", "type": "object", "properties": { "$id": { "type": "string", - "description": "Target ID.", - "x-example": "259125845563242502" + "description": "Aggregation ID.", + "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Target creation time in ISO 8601 format.", + "description": "Aggregation creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Target update date in ISO 8601 format.", + "description": "Aggregation update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "name": { - "type": "string", - "description": "Target Name.", - "x-example": "Apple iPhone 12" + "$permissions": { + "type": "array", + "description": "Aggregation permissions. [Learn more about permissions](\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] }, - "userId": { + "from": { "type": "string", - "description": "User ID.", - "x-example": "259125845563242502" + "description": "Beginning date of the invoice", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "providerId": { + "to": { "type": "string", - "description": "Provider ID.", - "x-example": "259125845563242502", - "nullable": true + "description": "End date of the invoice", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "x-example": "email" + "usageStorage": { + "type": "integer", + "description": "Total storage usage", + "x-example": 20009090, + "format": "int32" }, - "identifier": { + "usageTotalStorage": { + "type": "integer", + "description": "Total storage usage with builds storage", + "x-example": 20009090, + "format": "int32" + }, + "usageFilesStorage": { + "type": "integer", + "description": "Total files storage usage", + "x-example": 20009090, + "format": "int32" + }, + "usageDeploymentsStorage": { + "type": "integer", + "description": "Total deployments storage usage", + "x-example": 20009090, + "format": "int32" + }, + "usageBuildsStorage": { + "type": "integer", + "description": "Total builds storage usage", + "x-example": 20009090, + "format": "int32" + }, + "usageDatabasesStorage": { + "type": "integer", + "description": "Total databases storage usage", + "x-example": 2009090, + "format": "int32" + }, + "usageUsers": { + "type": "integer", + "description": "Total active users for the billing period", + "x-example": 2000, + "format": "int32" + }, + "usageExecutions": { + "type": "integer", + "description": "Total number of executions for the billing period", + "x-example": 2000, + "format": "int32" + }, + "usageBandwidth": { + "type": "integer", + "description": "Total bandwidth usage for the billing period", + "x-example": 2000, + "format": "int32" + }, + "usageRealtime": { + "type": "integer", + "description": "Peak concurrent realtime connections for the billing period", + "x-example": 200, + "format": "int32" + }, + "usageRealtimeMessages": { + "type": "integer", + "description": "Total realtime messages sent for the billing period", + "x-example": 10000, + "format": "int32" + }, + "usageRealtimeBandwidth": { + "type": "integer", + "description": "Total realtime bandwidth usage for the billing period", + "x-example": 5000000, + "format": "int32" + }, + "additionalMembers": { + "type": "integer", + "description": "Additional members", + "x-example": 5, + "format": "int32" + }, + "additionalMemberAmount": { + "type": "integer", + "description": "Additional members cost", + "x-example": 30, + "format": "int32" + }, + "additionalStorageAmount": { + "type": "integer", + "description": "Additional storage usage cost", + "x-example": 40, + "format": "int32" + }, + "additionalUsersAmount": { + "type": "integer", + "description": "Additional users usage cost.", + "x-example": 4, + "format": "int32" + }, + "additionalExecutionsAmount": { + "type": "integer", + "description": "Additional executions usage cost", + "x-example": 30, + "format": "int32" + }, + "additionalBandwidthAmount": { + "type": "integer", + "description": "Additional bandwidth usage cost", + "x-example": 40, + "format": "int32" + }, + "additionalRealtimeAmount": { + "type": "integer", + "description": "Additional realtime usage cost", + "x-example": 20, + "format": "int32" + }, + "plan": { "type": "string", - "description": "The target identifier.", - "x-example": "token" + "description": "Billing plan", + "x-example": "tier-0" }, - "expired": { - "type": "boolean", - "description": "Is the target expired.", - "x-example": false + "amount": { + "type": "integer", + "description": "Aggregated amount", + "x-example": 2, + "format": "int32" + }, + "breakdown": { + "type": "array", + "description": "Aggregation project breakdown", + "items": { + "$ref": "#\/components\/schemas\/aggregationBreakdown" + }, + "x-example": [] + }, + "resources": { + "type": "array", + "description": "Usage resources", + "items": { + "$ref": "#\/components\/schemas\/usageResources" + }, + "x-example": [] } }, "required": [ "$id", "$createdAt", "$updatedAt", - "name", - "userId", - "providerType", - "identifier", - "expired" + "$permissions", + "from", + "to", + "usageStorage", + "usageTotalStorage", + "usageFilesStorage", + "usageDeploymentsStorage", + "usageBuildsStorage", + "usageDatabasesStorage", + "usageUsers", + "usageExecutions", + "usageBandwidth", + "usageRealtime", + "usageRealtimeMessages", + "usageRealtimeBandwidth", + "additionalMembers", + "additionalMemberAmount", + "additionalStorageAmount", + "additionalUsersAmount", + "additionalExecutionsAmount", + "additionalBandwidthAmount", + "additionalRealtimeAmount", + "plan", + "amount", + "breakdown", + "resources" ], "example": { - "$id": "259125845563242502", + "$id": "5e5ea5c16897e", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "name": "Apple iPhone 12", - "userId": "259125845563242502", - "providerId": "259125845563242502", - "providerType": "email", - "identifier": "token", - "expired": false + "$permissions": [ + "read(\"any\")" + ], + "from": "2020-10-15T06:38:00.000+00:00", + "to": "2020-10-15T06:38:00.000+00:00", + "usageStorage": 20009090, + "usageTotalStorage": 20009090, + "usageFilesStorage": 20009090, + "usageDeploymentsStorage": 20009090, + "usageBuildsStorage": 20009090, + "usageDatabasesStorage": 2009090, + "usageUsers": 2000, + "usageExecutions": 2000, + "usageBandwidth": 2000, + "usageRealtime": 200, + "usageRealtimeMessages": 10000, + "usageRealtimeBandwidth": 5000000, + "additionalMembers": 5, + "additionalMemberAmount": 30, + "additionalStorageAmount": 40, + "additionalUsersAmount": 4, + "additionalExecutionsAmount": 30, + "additionalBandwidthAmount": 40, + "additionalRealtimeAmount": 20, + "plan": "tier-0", + "amount": 2, + "breakdown": [], + "resources": [] } }, - "migration": { - "description": "Migration", + "backupArchive": { + "description": "Archive", "type": "object", "properties": { "$id": { "type": "string", - "description": "Migration ID.", + "description": "Archive ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Migration creation date in ISO 8601 format.", + "description": "Archive creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Variable creation date in ISO 8601 format.", + "description": "Archive update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "status": { + "policyId": { "type": "string", - "description": "Migration status ( pending, processing, failed, completed ) ", - "x-example": "pending" + "description": "Archive policy ID.", + "x-example": "did8jx6ws45jana098ab7" }, - "stage": { + "size": { + "type": "integer", + "description": "Archive size in bytes.", + "x-example": 100000, + "format": "int32" + }, + "status": { "type": "string", - "description": "Migration stage ( init, processing, source-check, destination-check, migrating, finished )", - "x-example": "init" + "description": "The status of the archive creation. Possible values: pending, processing, uploading, completed, failed, skipped.", + "x-example": "completed" }, - "source": { + "startedAt": { "type": "string", - "description": "A string containing the type of source of the migration.", - "x-example": "Appwrite" + "description": "The backup start time.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "destination": { + "migrationId": { "type": "string", - "description": "A string containing the type of destination of the migration.", - "x-example": "Appwrite" + "description": "Migration ID.", + "x-example": "did8jx6ws45jana098ab7" }, - "resources": { + "services": { "type": "array", - "description": "Resources to migrate.", + "description": "The services that are backed up by this archive.", "items": { "type": "string" }, - "x-example": [ - "user" - ] - }, - "resourceId": { - "type": "string", - "description": "Id of the resource to migrate.", - "x-example": "databaseId:collectionId" - }, - "statusCounters": { - "type": "object", - "description": "A group of counters that represent the total progress of the migration.", - "x-example": "{\"Database\": {\"PENDING\": 0, \"SUCCESS\": 1, \"ERROR\": 0, \"SKIP\": 0, \"PROCESSING\": 0, \"WARNING\": 0}}" - }, - "resourceData": { - "type": "object", - "description": "An array of objects containing the report data of the resources that were migrated.", - "x-example": "[{\"resource\":\"Database\",\"id\":\"public\",\"status\":\"SUCCESS\",\"message\":\"\"}]" + "x-example": "['databases', 'storage']" }, - "errors": { + "resources": { "type": "array", - "description": "All errors that occurred during the migration process.", + "description": "The resources that are backed up by this archive.", "items": { "type": "string" }, - "x-example": [] + "x-example": "['databases', 'collections', 'attributes', 'indexes']" }, - "options": { - "type": "object", - "description": "Migration options used during the migration process.", - "x-example": "{\"bucketId\": \"exports\", \"notify\": false}" + "resourceId": { + "type": "string", + "description": "The resource ID to backup. Set only if this archive should backup a single resource.", + "x-example": "DB1", + "nullable": true + }, + "resourceType": { + "type": "string", + "description": "The resource type to backup. Set only if this archive should backup a single resource.", + "x-example": "database", + "nullable": true } }, "required": [ "$id", "$createdAt", "$updatedAt", + "policyId", + "size", "status", - "stage", - "source", - "destination", - "resources", - "resourceId", - "statusCounters", - "resourceData", - "errors", - "options" + "startedAt", + "migrationId", + "services", + "resources" ], "example": { "$id": "5e5ea5c16897e", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "status": "pending", - "stage": "init", - "source": "Appwrite", - "destination": "Appwrite", - "resources": [ - "user" - ], - "resourceId": "databaseId:collectionId", - "statusCounters": "{\"Database\": {\"PENDING\": 0, \"SUCCESS\": 1, \"ERROR\": 0, \"SKIP\": 0, \"PROCESSING\": 0, \"WARNING\": 0}}", - "resourceData": "[{\"resource\":\"Database\",\"id\":\"public\",\"status\":\"SUCCESS\",\"message\":\"\"}]", - "errors": [], - "options": "{\"bucketId\": \"exports\", \"notify\": false}" + "policyId": "did8jx6ws45jana098ab7", + "size": 100000, + "status": "completed", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "migrationId": "did8jx6ws45jana098ab7", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "resourceId": "DB1", + "resourceType": "database" } }, - "migrationReport": { - "description": "Migration Report", + "dedicatedDatabaseAuditLog": { + "description": "AuditLog", "type": "object", "properties": { - "user": { - "type": "integer", - "description": "Number of users to be migrated.", - "x-example": 20, - "format": "int32" + "timestamp": { + "type": "string", + "description": "When the event occurred.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "team": { - "type": "integer", - "description": "Number of teams to be migrated.", - "x-example": 20, - "format": "int32" + "user": { + "type": "string", + "description": "Database user that performed the action.", + "x-example": "appwrite" }, "database": { - "type": "integer", - "description": "Number of databases to be migrated.", - "x-example": 20, - "format": "int32" - }, - "row": { - "type": "integer", - "description": "Number of rows to be migrated.", - "x-example": 20, - "format": "int32" - }, - "file": { - "type": "integer", - "description": "Number of files to be migrated.", - "x-example": 20, - "format": "int32" - }, - "bucket": { - "type": "integer", - "description": "Number of buckets to be migrated.", - "x-example": 20, - "format": "int32" - }, - "function": { - "type": "integer", - "description": "Number of functions to be migrated.", - "x-example": 20, - "format": "int32" - }, - "platform": { - "type": "integer", - "description": "Number of platforms to be migrated.", - "x-example": 5, - "format": "int32" - }, - "site": { - "type": "integer", - "description": "Number of sites to be migrated.", - "x-example": 5, - "format": "int32" - }, - "provider": { - "type": "integer", - "description": "Number of providers to be migrated.", - "x-example": 5, - "format": "int32" - }, - "topic": { - "type": "integer", - "description": "Number of topics to be migrated.", - "x-example": 10, - "format": "int32" - }, - "subscriber": { - "type": "integer", - "description": "Number of subscribers to be migrated.", - "x-example": 100, - "format": "int32" - }, - "message": { - "type": "integer", - "description": "Number of messages to be migrated.", - "x-example": 50, - "format": "int32" + "type": "string", + "description": "Database name.", + "x-example": "appwrite" }, - "size": { - "type": "integer", - "description": "Size of files to be migrated in mb.", - "x-example": 30000, - "format": "int32" + "action": { + "type": "string", + "description": "The action performed (e.g., CREATE TABLE, DROP INDEX).", + "x-example": "CREATE TABLE" }, - "version": { + "object": { "type": "string", - "description": "Version of the Appwrite instance to be migrated.", - "x-example": "1.4.0" + "description": "The database object affected.", + "x-example": "public.users" }, - "backup-policy": { - "type": "integer", - "description": "Number of backup policies to be migrated.", - "x-example": 5, - "format": "int32" + "statement": { + "type": "string", + "description": "The full SQL statement.", + "x-example": "CREATE TABLE users (id serial PRIMARY KEY)" + }, + "clientAddress": { + "type": "string", + "description": "Client IP address.", + "x-example": "192.168.1.100" } }, "required": [ + "timestamp", "user", - "team", "database", - "row", - "file", - "bucket", - "function", - "platform", - "site", - "provider", - "topic", - "subscriber", - "message", - "size", - "version", - "backup-policy" + "action", + "object", + "statement", + "clientAddress" ], "example": { - "user": 20, - "team": 20, - "database": 20, - "row": 20, - "file": 20, - "bucket": 20, - "function": 20, - "platform": 5, - "site": 5, - "provider": 5, - "topic": 10, - "subscriber": 100, - "message": 50, - "size": 30000, - "version": "1.4.0", - "backup-policy": 5 + "timestamp": "2020-10-15T06:38:00.000+00:00", + "user": "appwrite", + "database": "appwrite", + "action": "CREATE TABLE", + "object": "public.users", + "statement": "CREATE TABLE users (id serial PRIMARY KEY)", + "clientAddress": "192.168.1.100" } }, - "insight": { - "description": "Insight", + "dedicatedDatabaseBackup": { + "description": "Backup", "type": "object", "properties": { "$id": { "type": "string", - "description": "Insight ID.", + "description": "Backup ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Insight creation date in ISO 8601 format.", + "description": "Backup creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "$updatedAt": { + "databaseId": { "type": "string", - "description": "Insight update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Database ID this backup belongs to.", + "x-example": "5e5ea5c16897e" }, - "reportId": { + "projectId": { "type": "string", - "description": "Parent report ID. Insights always belong to a report.", + "description": "Project ID.", "x-example": "5e5ea5c16897e" }, "type": { "type": "string", - "description": "Insight type. One of databaseIndex (legacy), tablesDBIndex, documentsDBIndex, vectorsDBIndex, databasePerformance, sitePerformance, siteAccessibility, siteSeo, functionPerformance. The index types are engine-specific so each CTA can pair the right service+method (databases.createIndex, tablesDB.createIndex, documentsDB.createIndex, or vectorsDB.createIndex).", - "x-example": "tablesDBIndex" - }, - "severity": { - "type": "string", - "description": "Insight severity. One of info, warning, critical.", - "x-example": "warning" + "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup), wal (write-ahead log continuous archival).", + "x-example": "full" }, "status": { "type": "string", - "description": "Insight status. One of active, dismissed.", - "x-example": "active" + "description": "Backup status. Possible values: pending (queued for processing), running (currently in progress), completed (successfully finished), failed (encountered an error), verified (integrity check passed).", + "x-example": "completed" }, - "resourceType": { - "type": "string", - "description": "Type of the resource the insight is about. Plural noun, e.g. databases, sites, functions.", - "x-example": "databases" + "sizeBytes": { + "type": "integer", + "description": "Backup size in bytes.", + "x-example": 1073741824, + "format": "int32" }, - "resourceId": { + "startedAt": { "type": "string", - "description": "ID of the resource the insight is about.", - "x-example": "main" + "description": "Backup start time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "parentResourceType": { + "completedAt": { "type": "string", - "description": "Plural noun for the parent resource that contains the insight's resource, e.g. an insight about a column index on a table \u2192 resourceType=indexes, parentResourceType=tables. Empty when the resource has no parent.", - "x-example": "tables" + "description": "Backup completion time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "parentResourceId": { + "verifiedAt": { "type": "string", - "description": "ID of the parent resource. Empty when the resource has no parent.", - "x-example": "orders" + "description": "Backup verification time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "title": { + "expiresAt": { "type": "string", - "description": "Insight title.", - "x-example": "Missing index on collection orders" + "description": "Backup expiration time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "summary": { + "error": { "type": "string", - "description": "Short markdown summary describing the insight.", - "x-example": "Queries against `orders.status` are scanning the full collection." + "description": "Error message if backup failed.", + "x-example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "projectId", + "type", + "status", + "sizeBytes", + "startedAt", + "completedAt", + "verifiedAt", + "expiresAt", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "projectId": "5e5ea5c16897e", + "type": "full", + "status": "completed", + "sizeBytes": 1073741824, + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "verifiedAt": "2020-10-15T06:38:00.000+00:00", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "error": "" + } + }, + "dedicatedDatabaseBackupList": { + "description": "BackupList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of backups.", + "x-example": 5, + "format": "int32" }, - "ctas": { + "backups": { "type": "array", - "description": "List of call-to-action buttons attached to this insight.", + "description": "List of backups.", "items": { - "$ref": "#\/components\/schemas\/insightCTA" + "$ref": "#\/components\/schemas\/dedicatedDatabaseBackup" }, "x-example": [] + } + }, + "required": [ + "total", + "backups" + ], + "example": { + "total": 5, + "backups": [] + } + }, + "dedicatedDatabaseBackupStorage": { + "description": "BackupStorageConfig", + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Storage provider. Possible values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "x-example": "s3" }, - "analyzedAt": { + "bucket": { "type": "string", - "description": "Time the insight was analyzed in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "description": "Storage bucket or container name.", + "x-example": "my-backup-bucket" }, - "dismissedAt": { + "region": { "type": "string", - "description": "Time the insight was dismissed in ISO 8601 format. Empty when not dismissed.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "description": "Storage region.", + "x-example": "us-east-1" }, - "dismissedBy": { + "prefix": { "type": "string", - "description": "User ID that dismissed the insight. Empty when not dismissed.", - "x-example": "5e5ea5c16897e", - "nullable": true + "description": "Object key prefix for backups.", + "x-example": "backups\/" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage.", + "x-example": "https:\/\/minio.example.com" } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "reportId", - "type", - "severity", - "status", - "resourceType", - "resourceId", - "parentResourceType", - "parentResourceId", - "title", - "summary", - "ctas" + "provider", + "bucket", + "region", + "prefix", + "endpoint" ], "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "reportId": "5e5ea5c16897e", - "type": "tablesDBIndex", - "severity": "warning", - "status": "active", - "resourceType": "databases", - "resourceId": "main", - "parentResourceType": "tables", - "parentResourceId": "orders", - "title": "Missing index on collection orders", - "summary": "Queries against `orders.status` are scanning the full collection.", - "ctas": [], - "analyzedAt": "2020-10-15T06:38:00.000+00:00", - "dismissedAt": "2020-10-15T06:38:00.000+00:00", - "dismissedBy": "5e5ea5c16897e" + "provider": "s3", + "bucket": "my-backup-bucket", + "region": "us-east-1", + "prefix": "backups\/", + "endpoint": "https:\/\/minio.example.com" } }, - "insightCTA": { - "description": "InsightCTA", + "billingAddress": { + "description": "Address", "type": "object", "properties": { - "label": { + "$id": { "type": "string", - "description": "Human-readable label for the CTA, used in UI.", - "x-example": "Create missing index" + "description": "Region ID", + "x-example": "eu-fr" }, - "service": { + "userId": { "type": "string", - "description": "Public API service (SDK namespace) the client should invoke. Must match the engine that owns the resource \u2014 for index suggestions: databases (legacy), tablesDB, documentsDB, or vectorsDB.", - "x-example": "tablesDB" + "description": "User ID", + "x-example": "5e5ea5c16897e" }, - "method": { + "streetAddress": { "type": "string", - "description": "Public API method on the chosen service the client should invoke when this CTA is triggered.", - "x-example": "createIndex" + "description": "Street address", + "x-example": "13th Avenue" }, - "params": { - "type": "object", - "description": "Parameter map the client should pass to the service method when this CTA is triggered. Keys match the target API's parameter names (e.g. databaseId\/tableId\/columns for tablesDB, databaseId\/collectionId\/attributes for the legacy Databases API).", - "x-example": { - "databaseId": "main", - "tableId": "orders", - "key": "_idx_status", - "type": "key", - "columns": [ - "status" - ] - } + "addressLine2": { + "type": "string", + "description": "Address line 2", + "x-example": "" + }, + "country": { + "type": "string", + "description": "Address country", + "x-example": "USA" + }, + "city": { + "type": "string", + "description": "city", + "x-example": "" + }, + "state": { + "type": "string", + "description": "state", + "x-example": "" + }, + "postalCode": { + "type": "string", + "description": "postal code", + "x-example": "" } }, "required": [ - "label", - "service", - "method", - "params" + "$id", + "userId", + "streetAddress", + "addressLine2", + "country", + "city", + "state", + "postalCode" ], "example": { - "label": "Create missing index", - "service": "tablesDB", - "method": "createIndex", - "params": { - "databaseId": "main", - "tableId": "orders", - "key": "_idx_status", - "type": "key", - "columns": [ - "status" - ] + "$id": "eu-fr", + "userId": "5e5ea5c16897e", + "streetAddress": "13th Avenue", + "addressLine2": "", + "country": "USA", + "city": "", + "state": "", + "postalCode": "" + } + }, + "billingLimits": { + "description": "Limits", + "type": "object", + "properties": { + "bandwidth": { + "type": "integer", + "description": "Bandwidth limit", + "x-example": 5, + "format": "int32", + "nullable": true + }, + "storage": { + "type": "integer", + "description": "Storage limit", + "x-example": 150, + "format": "int32", + "nullable": true + }, + "users": { + "type": "integer", + "description": "Users limit", + "x-example": 200000, + "format": "int32", + "nullable": true + }, + "executions": { + "type": "integer", + "description": "Executions limit", + "x-example": 750000, + "format": "int32", + "nullable": true + }, + "GBHours": { + "type": "integer", + "description": "GBHours limit", + "x-example": 100, + "format": "int32", + "nullable": true + }, + "imageTransformations": { + "type": "integer", + "description": "Image transformations limit", + "x-example": 100, + "format": "int32", + "nullable": true + }, + "authPhone": { + "type": "integer", + "description": "Auth phone limit", + "x-example": 10, + "format": "int32", + "nullable": true + }, + "budgetLimit": { + "type": "integer", + "description": "Budget limit percentage", + "x-example": 100, + "format": "int32", + "nullable": true } + }, + "example": { + "bandwidth": 5, + "storage": 150, + "users": 200000, + "executions": 750000, + "GBHours": 100, + "imageTransformations": 100, + "authPhone": 10, + "budgetLimit": 100 } }, - "report": { - "description": "Report", + "billingPlan": { + "description": "billingPlan", "type": "object", "properties": { "$id": { "type": "string", - "description": "Report ID.", - "x-example": "5e5ea5c16897e" + "description": "Plan ID.", + "x-example": "tier-0" }, - "$createdAt": { + "name": { "type": "string", - "description": "Report creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Plan name", + "x-example": "Hobby" }, - "$updatedAt": { + "desc": { "type": "string", - "description": "Report update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Plan description", + "x-example": "Hobby plan" }, - "appId": { - "type": "string", - "description": "ID of the third-party app that submitted the report.", - "x-example": "5e5ea5c16897e" + "order": { + "type": "integer", + "description": "Plan order", + "x-example": 0, + "format": "int32" }, - "type": { - "type": "string", - "description": "Analyzer that produced this report. e.g. lighthouse, audit, databaseAnalyzer.", - "x-example": "lighthouse" + "price": { + "type": "number", + "description": "Price", + "x-example": 25, + "format": "double" + }, + "trial": { + "type": "integer", + "description": "Trial days", + "x-example": 14, + "format": "int32" + }, + "bandwidth": { + "type": "integer", + "description": "Bandwidth", + "x-example": 25, + "format": "int32" + }, + "storage": { + "type": "integer", + "description": "Storage", + "x-example": 25, + "format": "int32" + }, + "imageTransformations": { + "type": "integer", + "description": "Image Transformations", + "x-example": 100, + "format": "int32" + }, + "screenshotsGenerated": { + "type": "integer", + "description": "Screenshots generated", + "x-example": 50, + "format": "int32" + }, + "members": { + "type": "integer", + "description": "Members", + "x-example": 25, + "format": "int32" + }, + "webhooks": { + "type": "integer", + "description": "Webhooks", + "x-example": 25, + "format": "int32" + }, + "projects": { + "type": "integer", + "description": "Projects", + "x-example": 2, + "format": "int32" + }, + "platforms": { + "type": "integer", + "description": "Platforms", + "x-example": 3, + "format": "int32" + }, + "users": { + "type": "integer", + "description": "Users", + "x-example": 25, + "format": "int32" + }, + "teams": { + "type": "integer", + "description": "Teams", + "x-example": 25, + "format": "int32" + }, + "databases": { + "type": "integer", + "description": "Databases", + "x-example": 25, + "format": "int32" + }, + "databasesReads": { + "type": "integer", + "description": "Database reads per month", + "x-example": 500000, + "format": "int32" + }, + "databasesWrites": { + "type": "integer", + "description": "Database writes per month", + "x-example": 250000, + "format": "int32" + }, + "databasesBatchSize": { + "type": "integer", + "description": "Database batch size limit", + "x-example": 100, + "format": "int32" + }, + "buckets": { + "type": "integer", + "description": "Buckets", + "x-example": 25, + "format": "int32" + }, + "fileSize": { + "type": "integer", + "description": "File size", + "x-example": 25, + "format": "int32" + }, + "functions": { + "type": "integer", + "description": "Functions", + "x-example": 25, + "format": "int32" + }, + "sites": { + "type": "integer", + "description": "Sites", + "x-example": 1, + "format": "int32" + }, + "executions": { + "type": "integer", + "description": "Function executions", + "x-example": 25, + "format": "int32" + }, + "executionsRetentionCount": { + "type": "integer", + "description": "Rolling max executions retained per function\/site", + "x-example": 10000, + "format": "int32" }, - "title": { - "type": "string", - "description": "Short, human-readable title for the report.", - "x-example": "Lighthouse audit for https:\/\/appwrite.io\/" + "GBHours": { + "type": "integer", + "description": "GB hours for functions", + "x-example": 100, + "format": "int32" }, - "summary": { - "type": "string", - "description": "Markdown summary describing the report.", - "x-example": "Performance score 78. 4 opportunities found." + "realtime": { + "type": "integer", + "description": "Realtime connections", + "x-example": 25, + "format": "int32" }, - "targetType": { - "type": "string", - "description": "Plural noun describing what the report analyzes, e.g. databases, sites, urls.", - "x-example": "urls" + "realtimeMessages": { + "type": "integer", + "description": "Realtime messages", + "x-example": 100000, + "format": "int32" }, - "target": { - "type": "string", - "description": "Free-form target identifier (URL for lighthouse, resource ID for db).", - "x-example": "https:\/\/appwrite.io\/" + "messages": { + "type": "integer", + "description": "Messages per month", + "x-example": 1000, + "format": "int32" }, - "categories": { - "type": "array", - "description": "Categories covered by the report, e.g. performance, accessibility.", - "items": { - "type": "string" - }, - "x-example": [ - "performance", - "accessibility" - ] + "topics": { + "type": "integer", + "description": "Topics for messaging", + "x-example": 1, + "format": "int32" }, - "insights": { - "type": "array", - "description": "Insights nested under this report.", - "items": { - "$ref": "#\/components\/schemas\/insight" - }, - "x-example": [] + "authPhone": { + "type": "integer", + "description": "SMS authentications per month", + "x-example": 10, + "format": "int32" }, - "analyzedAt": { - "type": "string", - "description": "Time the report was analyzed in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "type", - "title", - "summary", - "targetType", - "target", - "categories", - "insights" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "type": "lighthouse", - "title": "Lighthouse audit for https:\/\/appwrite.io\/", - "summary": "Performance score 78. 4 opportunities found.", - "targetType": "urls", - "target": "https:\/\/appwrite.io\/", - "categories": [ - "performance", - "accessibility" - ], - "insights": [], - "analyzedAt": "2020-10-15T06:38:00.000+00:00" - } - }, - "activityEvent": { - "description": "ActivityEvent", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Event ID.", - "x-example": "5e5ea5c16897e" + "domains": { + "type": "integer", + "description": "Custom domains", + "x-example": 5, + "format": "int32" }, - "userType": { - "type": "string", - "description": "User type.", - "x-example": "user" + "logs": { + "type": "integer", + "description": "Log days", + "x-example": 25, + "format": "int32" }, - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "610fc2f985ee0" + "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" }, - "userEmail": { - "type": "string", - "description": "User Email.", - "x-example": "john@appwrite.io" + "alertLimit": { + "type": "integer", + "description": "Alert threshold percentage", + "x-example": 80, + "format": "int32" }, - "userName": { - "type": "string", - "description": "User Name.", - "x-example": "John Doe" + "usage": { + "type": "object", + "description": "Additional resources", + "x-example": null, + "items": { + "$ref": "#\/components\/schemas\/usageBillingPlan" + } }, - "resourceParent": { - "type": "string", - "description": "Resource parent.", - "x-example": "database\/ID" + "addons": { + "type": "object", + "description": "Addons", + "x-example": null, + "items": { + "$ref": "#\/components\/schemas\/billingPlanAddon" + } }, - "resourceType": { - "type": "string", - "description": "Resource type.", - "x-example": "collection" + "budgetCapEnabled": { + "type": "boolean", + "description": "Budget cap enabled or disabled.", + "x-example": true }, - "resourceId": { - "type": "string", - "description": "Resource ID.", - "x-example": "610fc2f985ee0" + "customSmtp": { + "type": "boolean", + "description": "Custom SMTP", + "x-example": true }, - "resource": { - "type": "string", - "description": "Resource.", - "x-example": "collections\/610fc2f985ee0" + "emailBranding": { + "type": "boolean", + "description": "Appwrite branding in email", + "x-example": true }, - "event": { - "type": "string", - "description": "Event name.", - "x-example": "account.sessions.create" + "requiresPaymentMethod": { + "type": "boolean", + "description": "Does plan require payment method", + "x-example": true }, - "userAgent": { - "type": "string", - "description": "User agent.", - "x-example": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/86.0.4240.198 Safari\/537.36" + "requiresBillingAddress": { + "type": "boolean", + "description": "Does plan require billing address", + "x-example": true }, - "ip": { - "type": "string", - "description": "IP address.", - "x-example": "127.0.0.1" + "isAvailable": { + "type": "boolean", + "description": "Is the billing plan available", + "x-example": true }, - "mode": { - "type": "string", - "description": "API mode when event triggered.", - "x-example": "admin" + "selfService": { + "type": "boolean", + "description": "Can user change the plan themselves", + "x-example": true }, - "country": { - "type": "string", - "description": "Location.", - "x-example": "US" + "premiumSupport": { + "type": "boolean", + "description": "Does plan enable premium support", + "x-example": true }, - "time": { - "type": "string", - "description": "Log creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "budgeting": { + "type": "boolean", + "description": "Does plan support budget cap", + "x-example": true }, - "projectId": { - "type": "string", - "description": "Project ID.", - "x-example": "610fc2f985ee0" + "supportsMockNumbers": { + "type": "boolean", + "description": "Does plan support mock numbers", + "x-example": true }, - "teamId": { - "type": "string", - "description": "Team ID.", - "x-example": "610fc2f985ee0" + "supportsOrganizationRoles": { + "type": "boolean", + "description": "Does plan support organization roles", + "x-example": true }, - "hostname": { - "type": "string", - "description": "Hostname.", - "x-example": "appwrite.io" + "supportsCredits": { + "type": "boolean", + "description": "Does plan support credit", + "x-example": true }, - "osCode": { - "type": "string", - "description": "Operating system code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/os.json).", - "x-example": "Mac" + "supportsDisposableEmailValidation": { + "type": "boolean", + "description": "Does plan support blocking disposable email addresses.", + "x-example": true }, - "osName": { - "type": "string", - "description": "Operating system name.", - "x-example": "Mac" + "supportsCanonicalEmailValidation": { + "type": "boolean", + "description": "Does plan support requiring canonical email addresses.", + "x-example": true }, - "osVersion": { - "type": "string", - "description": "Operating system version.", - "x-example": "Mac" + "supportsFreeEmailValidation": { + "type": "boolean", + "description": "Does plan support blocking free email addresses.", + "x-example": true }, - "clientType": { - "type": "string", - "description": "Client type.", - "x-example": "browser" + "backupsEnabled": { + "type": "boolean", + "description": "Does plan support backup policies.", + "x-example": true }, - "clientCode": { - "type": "string", - "description": "Client code name. View list of [available options](https:\/\/github.com\/appwrite\/appwrite\/blob\/master\/docs\/lists\/clients.json).", - "x-example": "CM" + "usagePerProject": { + "type": "boolean", + "description": "Whether usage addons are calculated per project.", + "x-example": true }, - "clientName": { - "type": "string", - "description": "Client name.", - "x-example": "Chrome Mobile iOS" + "supportedAddons": { + "type": "object", + "description": "Supported addons for this plan", + "x-example": null, + "items": { + "$ref": "#\/components\/schemas\/billingPlanSupportedAddons" + } }, - "clientVersion": { - "type": "string", - "description": "Client version.", - "x-example": "84.0" + "backupPolicies": { + "type": "integer", + "description": "How many policies does plan support", + "x-example": true, + "format": "int32" }, - "clientEngine": { - "type": "string", - "description": "Client engine name.", - "x-example": "WebKit" + "deploymentSize": { + "type": "integer", + "description": "Maximum function and site deployment size in MB", + "x-example": 30, + "format": "int32" }, - "clientEngineVersion": { - "type": "string", - "description": "Client engine name.", - "x-example": "605.1.15" + "buildSize": { + "type": "integer", + "description": "Maximum function and site deployment size in MB", + "x-example": 2000, + "format": "int32" }, - "deviceName": { - "type": "string", - "description": "Device name.", - "x-example": "smartphone" + "databasesAllowEncrypt": { + "type": "boolean", + "description": "Does the plan support encrypted string attributes or not.", + "x-example": false }, - "deviceBrand": { - "type": "string", - "description": "Device brand name.", - "x-example": "Google" + "limits": { + "type": "object", + "description": "Plan specific limits", + "x-example": null, + "items": { + "$ref": "#\/components\/schemas\/billingPlanLimits" + }, + "nullable": true }, - "deviceModel": { + "group": { "type": "string", - "description": "Device model name.", - "x-example": "Nexus 5" + "description": "Group of this billing plan for variants", + "x-example": "pro", + "enum": [ + "starter", + "pro", + "scale" + ] }, - "countryCode": { - "type": "string", - "description": "Country two-character ISO 3166-1 alpha code.", - "x-example": "US" + "program": { + "type": "object", + "description": "Details of the program this plan is a part of.", + "x-example": null, + "items": { + "$ref": "#\/components\/schemas\/program" + }, + "nullable": true + } + }, + "required": [ + "$id", + "name", + "desc", + "order", + "price", + "trial", + "bandwidth", + "storage", + "imageTransformations", + "screenshotsGenerated", + "members", + "webhooks", + "projects", + "platforms", + "users", + "teams", + "databases", + "databasesReads", + "databasesWrites", + "databasesBatchSize", + "buckets", + "fileSize", + "functions", + "sites", + "executions", + "executionsRetentionCount", + "GBHours", + "realtime", + "realtimeMessages", + "messages", + "topics", + "authPhone", + "domains", + "logs", + "projectInactivityDays", + "alertLimit", + "usage", + "addons", + "budgetCapEnabled", + "customSmtp", + "emailBranding", + "requiresPaymentMethod", + "requiresBillingAddress", + "isAvailable", + "selfService", + "premiumSupport", + "budgeting", + "supportsMockNumbers", + "supportsOrganizationRoles", + "supportsCredits", + "supportsDisposableEmailValidation", + "supportsCanonicalEmailValidation", + "supportsFreeEmailValidation", + "backupsEnabled", + "usagePerProject", + "supportedAddons", + "backupPolicies", + "deploymentSize", + "buildSize", + "databasesAllowEncrypt", + "group" + ], + "example": { + "$id": "tier-0", + "name": "Hobby", + "desc": "Hobby plan", + "order": 0, + "price": 25, + "trial": 14, + "bandwidth": 25, + "storage": 25, + "imageTransformations": 100, + "screenshotsGenerated": 50, + "members": 25, + "webhooks": 25, + "projects": 2, + "platforms": 3, + "users": 25, + "teams": 25, + "databases": 25, + "databasesReads": 500000, + "databasesWrites": 250000, + "databasesBatchSize": 100, + "buckets": 25, + "fileSize": 25, + "functions": 25, + "sites": 1, + "executions": 25, + "executionsRetentionCount": 10000, + "GBHours": 100, + "realtime": 25, + "realtimeMessages": 100000, + "messages": 1000, + "topics": 1, + "authPhone": 10, + "domains": 5, + "logs": 25, + "projectInactivityDays": 7, + "alertLimit": 80, + "usage": null, + "addons": null, + "budgetCapEnabled": true, + "customSmtp": true, + "emailBranding": true, + "requiresPaymentMethod": true, + "requiresBillingAddress": true, + "isAvailable": true, + "selfService": true, + "premiumSupport": true, + "budgeting": true, + "supportsMockNumbers": true, + "supportsOrganizationRoles": true, + "supportsCredits": true, + "supportsDisposableEmailValidation": true, + "supportsCanonicalEmailValidation": true, + "supportsFreeEmailValidation": true, + "backupsEnabled": true, + "usagePerProject": true, + "supportedAddons": null, + "backupPolicies": true, + "deploymentSize": 30, + "buildSize": 2000, + "databasesAllowEncrypt": false, + "limits": null, + "group": "pro", + "program": null + } + }, + "billingPlanAddon": { + "description": "Addon", + "type": "object", + "properties": { + "seats": { + "type": "object", + "description": "Addon seats", + "x-example": null, + "items": { + "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + } }, - "countryName": { - "type": "string", - "description": "Country name.", - "x-example": "United States" + "projects": { + "type": "object", + "description": "Addon projects", + "x-example": null, + "items": { + "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + } } }, "required": [ - "$id", - "userType", - "userId", - "userEmail", - "userName", - "resourceParent", - "resourceType", - "resourceId", - "resource", - "event", - "userAgent", - "ip", - "mode", - "country", - "time", - "projectId", - "teamId", - "hostname", - "osCode", - "osName", - "osVersion", - "clientType", - "clientCode", - "clientName", - "clientVersion", - "clientEngine", - "clientEngineVersion", - "deviceName", - "deviceBrand", - "deviceModel", - "countryCode", - "countryName" + "seats", + "projects" ], "example": { - "$id": "5e5ea5c16897e", - "userType": "user", - "userId": "610fc2f985ee0", - "userEmail": "john@appwrite.io", - "userName": "John Doe", - "resourceParent": "database\/ID", - "resourceType": "collection", - "resourceId": "610fc2f985ee0", - "resource": "collections\/610fc2f985ee0", - "event": "account.sessions.create", - "userAgent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/86.0.4240.198 Safari\/537.36", - "ip": "127.0.0.1", - "mode": "admin", - "country": "US", - "time": "2020-10-15T06:38:00.000+00:00", - "projectId": "610fc2f985ee0", - "teamId": "610fc2f985ee0", - "hostname": "appwrite.io", - "osCode": "Mac", - "osName": "Mac", - "osVersion": "Mac", - "clientType": "browser", - "clientCode": "CM", - "clientName": "Chrome Mobile iOS", - "clientVersion": "84.0", - "clientEngine": "WebKit", - "clientEngineVersion": "605.1.15", - "deviceName": "smartphone", - "deviceBrand": "Google", - "deviceModel": "Nexus 5", - "countryCode": "US", - "countryName": "United States" + "seats": null, + "projects": null } }, - "additionalResource": { - "description": "AdditionalResource", + "billingPlanAddonDetails": { + "description": "Details", "type": "object", "properties": { - "name": { - "type": "string", - "description": "Resource name", - "x-example": "" + "supported": { + "type": "boolean", + "description": "Is the addon supported in the plan?", + "x-example": true }, - "unit": { + "planIncluded": { + "type": "integer", + "description": "Addon plan included value", + "x-example": 1, + "format": "int32" + }, + "limit": { + "type": "integer", + "description": "Addon limit", + "x-example": 5, + "format": "int32" + }, + "type": { "type": "string", - "description": "Resource unit", - "x-example": "GB" + "description": "Addon type", + "x-example": "numeric" }, "currency": { "type": "string", @@ -95348,1780 +100043,2371 @@ } }, "required": [ - "name", - "unit", + "supported", + "planIncluded", + "limit", + "type", "currency", "price", "value", "invoiceDesc" ], "example": { - "name": "", - "unit": "GB", + "supported": true, + "planIncluded": 1, + "limit": 5, + "type": "numeric", "currency": "USD", "price": 5, "value": 25, "invoiceDesc": "" } }, - "aggregationTeam": { - "description": "AggregationTeam", + "billingPlanLimits": { + "description": "PlanLimits", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Aggregation ID.", - "x-example": "5e5ea5c16897e" + "credits": { + "type": "integer", + "description": "Credits limit per billing cycle", + "x-example": 100, + "format": "int32", + "nullable": true }, + "dailyCredits": { + "type": "integer", + "description": "Daily credits limit (if applicable)", + "x-example": 5, + "format": "int32", + "nullable": true + } + }, + "example": { + "credits": 100, + "dailyCredits": 5 + } + }, + "billingPlanSupportedAddons": { + "description": "BillingPlanSupportedAddons", + "type": "object", + "properties": { + "baa": { + "type": "boolean", + "description": "Whether the plan supports BAA (Business Associate Agreement) addon", + "x-example": true + } + }, + "required": [ + "baa" + ], + "example": { + "baa": true + } + }, + "block": { + "description": "Block", + "type": "object", + "properties": { "$createdAt": { "type": "string", - "description": "Aggregation creation time in ISO 8601 format.", + "description": "Block creation date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "$updatedAt": { + "resourceType": { "type": "string", - "description": "Aggregation update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$permissions": { - "type": "array", - "description": "Aggregation permissions. [Learn more about permissions](\/docs\/permissions).", - "items": { - "type": "string" - }, - "x-example": [ - "read(\"any\")" - ] + "description": "Resource type that is blocked", + "x-example": "project" }, - "from": { + "resourceId": { "type": "string", - "description": "Beginning date of the invoice", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Resource identifier that is blocked", + "x-example": "5e5ea5c16897e" }, - "to": { + "reason": { "type": "string", - "description": "End date of the invoice", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "usageStorage": { - "type": "integer", - "description": "Total storage usage", - "x-example": 20009090, - "format": "int32" - }, - "usageTotalStorage": { - "type": "integer", - "description": "Total storage usage with builds storage", - "x-example": 20009090, - "format": "int32" - }, - "usageFilesStorage": { - "type": "integer", - "description": "Total files storage usage", - "x-example": 20009090, - "format": "int32" + "description": "Reason for the block. Can be null if no reason was provided.", + "x-example": "Payment overdue", + "nullable": true }, - "usageDeploymentsStorage": { - "type": "integer", - "description": "Total deployments storage usage", - "x-example": 20009090, - "format": "int32" + "expiredAt": { + "type": "string", + "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true }, - "usageBuildsStorage": { - "type": "integer", - "description": "Total builds storage usage", - "x-example": 20009090, - "format": "int32" + "projectName": { + "type": "string", + "description": "Name of the project this block applies to.", + "x-example": "My Project" }, - "usageDatabasesStorage": { - "type": "integer", - "description": "Total databases storage usage", - "x-example": 2009090, - "format": "int32" + "region": { + "type": "string", + "description": "Region of the project this block applies to.", + "x-example": "fra" }, - "usageUsers": { - "type": "integer", - "description": "Total active users for the billing period", - "x-example": 2000, - "format": "int32" + "organizationName": { + "type": "string", + "description": "Name of the organization that owns the project.", + "x-example": "Acme Inc." }, - "usageExecutions": { - "type": "integer", - "description": "Total number of executions for the billing period", - "x-example": 2000, - "format": "int32" + "organizationId": { + "type": "string", + "description": "ID of the organization that owns the project.", + "x-example": "5e5ea5c16897e" }, - "usageBandwidth": { + "billingPlan": { + "type": "string", + "description": "Billing plan of the organization that owns the project.", + "x-example": "pro" + } + }, + "required": [ + "$createdAt", + "resourceType", + "resourceId", + "projectName", + "region", + "organizationName", + "organizationId", + "billingPlan" + ], + "example": { + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceType": "project", + "resourceId": "5e5ea5c16897e", + "reason": "Payment overdue", + "expiredAt": "2020-10-15T06:38:00.000+00:00", + "projectName": "My Project", + "region": "fra", + "organizationName": "Acme Inc.", + "organizationId": "5e5ea5c16897e", + "billingPlan": "pro" + } + }, + "blockDelete": { + "description": "BlockDelete", + "type": "object", + "properties": { + "deleted": { "type": "integer", - "description": "Total bandwidth usage for the billing period", - "x-example": 2000, + "description": "Number of blocks deleted", + "x-example": 1, "format": "int32" }, - "usageRealtime": { - "type": "integer", - "description": "Peak concurrent realtime connections for the billing period", - "x-example": 200, - "format": "int32" + "blocks": { + "type": "array", + "description": "List of deleted blocks", + "items": { + "$ref": "#\/components\/schemas\/block" + }, + "x-example": [] + } + }, + "required": [ + "deleted", + "blocks" + ], + "example": { + "deleted": 1, + "blocks": [] + } + }, + "dedicatedDatabaseBranch": { + "description": "Branch", + "type": "object", + "properties": { + "branchId": { + "type": "string", + "description": "Branch identifier.", + "x-example": "branch-a1b2c3d4" }, - "usageRealtimeMessages": { - "type": "integer", - "description": "Total realtime messages sent for the billing period", - "x-example": 10000, - "format": "int32" + "branchName": { + "type": "string", + "description": "Branch name.", + "x-example": "branch-a1b2c3d4" }, - "usageRealtimeBandwidth": { - "type": "integer", - "description": "Total realtime bandwidth usage for the billing period", - "x-example": 5000000, - "format": "int32" + "namespace": { + "type": "string", + "description": "Kubernetes namespace where the branch is deployed.", + "x-example": "branch-a1b2c3d4" }, - "additionalMembers": { + "expiresAt": { "type": "integer", - "description": "Additional members", - "x-example": 5, + "description": "Unix timestamp when the branch expires.", + "x-example": 1711411200, "format": "int32" + } + }, + "required": [ + "branchId", + "branchName", + "namespace", + "expiresAt" + ], + "example": { + "branchId": "branch-a1b2c3d4", + "branchName": "branch-a1b2c3d4", + "namespace": "branch-a1b2c3d4", + "expiresAt": 1711411200 + } + }, + "dedicatedDatabaseBranchList": { + "description": "BranchList", + "type": "object", + "properties": { + "branches": { + "type": "array", + "description": "List of branches.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseBranch" + }, + "x-example": [] + } + }, + "required": [ + "branches" + ], + "example": { + "branches": [] + } + }, + "campaign": { + "description": "Campaign", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Campaign ID", + "x-example": "" }, - "additionalMemberAmount": { - "type": "integer", - "description": "Additional members cost", - "x-example": 30, - "format": "int32" + "template": { + "type": "string", + "description": "Campaign template", + "x-example": "" }, - "additionalStorageAmount": { - "type": "integer", - "description": "Additional storage usage cost", - "x-example": 40, - "format": "int32" + "title": { + "type": "string", + "description": "Campaign title", + "x-example": "" }, - "additionalUsersAmount": { - "type": "integer", - "description": "Additional users usage cost.", - "x-example": 4, - "format": "int32" + "description": { + "type": "string", + "description": "Campaign description", + "x-example": "" }, - "additionalExecutionsAmount": { - "type": "integer", - "description": "Additional executions usage cost", - "x-example": 30, - "format": "int32" + "plan": { + "type": "string", + "description": "Billing plan campaign is associated with", + "x-example": "", + "nullable": true }, - "additionalBandwidthAmount": { - "type": "integer", - "description": "Additional bandwidth usage cost", - "x-example": 40, - "format": "int32" + "cta": { + "type": "string", + "description": "Campaign CTA", + "x-example": "", + "nullable": true }, - "additionalRealtimeAmount": { - "type": "integer", - "description": "Additional realtime usage cost", - "x-example": 20, - "format": "int32" + "claimed": { + "type": "string", + "description": "Campaign info when claimed", + "x-example": "", + "nullable": true }, - "plan": { + "unclaimed": { "type": "string", - "description": "Billing plan", - "x-example": "tier-0" + "description": "Campaign infor when unclaimed", + "x-example": "", + "nullable": true }, - "amount": { - "type": "integer", - "description": "Aggregated amount", - "x-example": 2, - "format": "int32" + "image": { + "type": "object", + "description": "Campaign images", + "x-example": "", + "nullable": true }, - "breakdown": { + "reviews": { "type": "array", - "description": "Aggregation project breakdown", + "description": "Campaign reviews", "items": { - "$ref": "#\/components\/schemas\/aggregationBreakdown" + "$ref": "#\/components\/schemas\/review" }, - "x-example": [] + "x-example": "", + "nullable": true }, - "resources": { - "type": "array", - "description": "Usage resources", - "items": { - "$ref": "#\/components\/schemas\/usageResources" - }, - "x-example": [] + "onlyNewOrgs": { + "type": "boolean", + "description": "Campaign valid only for new orgs.", + "x-example": "", + "nullable": true + }, + "footer": { + "type": "boolean", + "description": "Is footer", + "x-example": "", + "nullable": true } }, "required": [ "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "from", - "to", - "usageStorage", - "usageTotalStorage", - "usageFilesStorage", - "usageDeploymentsStorage", - "usageBuildsStorage", - "usageDatabasesStorage", - "usageUsers", - "usageExecutions", - "usageBandwidth", - "usageRealtime", - "usageRealtimeMessages", - "usageRealtimeBandwidth", - "additionalMembers", - "additionalMemberAmount", - "additionalStorageAmount", - "additionalUsersAmount", - "additionalExecutionsAmount", - "additionalBandwidthAmount", - "additionalRealtimeAmount", - "plan", - "amount", - "breakdown", - "resources" + "template", + "title", + "description" ], "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "from": "2020-10-15T06:38:00.000+00:00", - "to": "2020-10-15T06:38:00.000+00:00", - "usageStorage": 20009090, - "usageTotalStorage": 20009090, - "usageFilesStorage": 20009090, - "usageDeploymentsStorage": 20009090, - "usageBuildsStorage": 20009090, - "usageDatabasesStorage": 2009090, - "usageUsers": 2000, - "usageExecutions": 2000, - "usageBandwidth": 2000, - "usageRealtime": 200, - "usageRealtimeMessages": 10000, - "usageRealtimeBandwidth": 5000000, - "additionalMembers": 5, - "additionalMemberAmount": 30, - "additionalStorageAmount": 40, - "additionalUsersAmount": 4, - "additionalExecutionsAmount": 30, - "additionalBandwidthAmount": 40, - "additionalRealtimeAmount": 20, - "plan": "tier-0", - "amount": 2, - "breakdown": [], - "resources": [] + "$id": "", + "template": "", + "title": "", + "description": "", + "plan": "", + "cta": "", + "claimed": "", + "unclaimed": "", + "image": "", + "reviews": "", + "onlyNewOrgs": "", + "footer": "" } }, - "aggregationBreakdown": { - "description": "AggregationBreakdown", + "dedicatedDatabaseConnection": { + "description": "Connection", "type": "object", "properties": { "$id": { "type": "string", - "description": "Aggregation ID.", + "description": "Connection ID.", "x-example": "5e5ea5c16897e" }, - "name": { + "username": { "type": "string", - "description": "Project name", - "x-example": "" + "description": "Connection username.", + "x-example": "app_readonly" }, - "region": { + "database": { "type": "string", - "description": "Project region", - "x-example": "fra" + "description": "Database name.", + "x-example": "appwrite" }, - "amount": { - "type": "integer", - "description": "Aggregated amount", - "x-example": 2, - "format": "int32" + "role": { + "type": "string", + "description": "Connection role. Common values: readonly, readwrite.", + "x-example": "readonly" }, - "resources": { - "type": "array", - "description": "", - "items": { - "$ref": "#\/components\/schemas\/usageResources" - }, - "x-example": "" + "$createdAt": { + "type": "string", + "description": "Connection creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ "$id", - "name", - "region", - "amount", - "resources" + "username", + "database", + "role", + "$createdAt" ], "example": { "$id": "5e5ea5c16897e", - "name": "", - "region": "fra", - "amount": 2, - "resources": "" + "username": "app_readonly", + "database": "appwrite", + "role": "readonly", + "$createdAt": "2020-10-15T06:38:00.000+00:00" } }, - "backupArchive": { - "description": "Archive", + "coupon": { + "description": "Coupon", "type": "object", "properties": { "$id": { "type": "string", - "description": "Archive ID.", - "x-example": "5e5ea5c16897e" + "description": "coupon ID", + "x-example": "NEWBONUS" }, - "$createdAt": { + "code": { "type": "string", - "description": "Archive creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "coupon ID", + "x-example": "NEWBONUS" }, - "$updatedAt": { - "type": "string", - "description": "Archive update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "credits": { + "type": "number", + "description": "Provided credit amount", + "x-example": 50, + "format": "double" }, - "policyId": { + "expiration": { "type": "string", - "description": "Archive policy ID.", - "x-example": "did8jx6ws45jana098ab7" + "description": "Coupon expiration time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "size": { + "validity": { "type": "integer", - "description": "Archive size in bytes.", - "x-example": 100000, + "description": "Credit validity in days.", + "x-example": 180, "format": "int32" }, + "campaign": { + "type": "string", + "description": "Campaign the coupon is associated with`.", + "x-example": "AppwriteHeroes" + }, "status": { "type": "string", - "description": "The status of the archive creation. Possible values: pending, processing, uploading, completed, failed, skipped.", - "x-example": "completed" + "description": "Status of the coupon. Can be one of `disabled`, `active` or `expired`.", + "x-example": "disabled" }, - "startedAt": { + "onlyNewOrgs": { + "type": "boolean", + "description": "If the coupon is only valid for new organizations or not.", + "x-example": true + } + }, + "required": [ + "$id", + "code", + "credits", + "expiration", + "validity", + "campaign", + "status", + "onlyNewOrgs" + ], + "example": { + "$id": "NEWBONUS", + "code": "NEWBONUS", + "credits": 50, + "expiration": "2020-10-15T06:38:00.000+00:00", + "validity": 180, + "campaign": "AppwriteHeroes", + "status": "disabled", + "onlyNewOrgs": true + } + }, + "dedicatedDatabaseCredentials": { + "description": "Credentials", + "type": "object", + "properties": { + "$id": { "type": "string", - "description": "The backup start time.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Database ID.", + "x-example": "5e5ea5c16897e" }, - "migrationId": { + "host": { "type": "string", - "description": "Migration ID.", - "x-example": "did8jx6ws45jana098ab7" + "description": "Database hostname.", + "x-example": "db-myproject-mydb.fra.appwrite.network" }, - "services": { - "type": "array", - "description": "The services that are backed up by this archive.", - "items": { - "type": "string" - }, - "x-example": "['databases', 'storage']" + "port": { + "type": "integer", + "description": "Database port.", + "x-example": 5432, + "format": "int32" }, - "resources": { - "type": "array", - "description": "The resources that are backed up by this archive.", - "items": { - "type": "string" - }, - "x-example": "['databases', 'collections', 'attributes', 'indexes']" + "username": { + "type": "string", + "description": "Database username.", + "x-example": "appwrite" }, - "resourceId": { + "password": { "type": "string", - "description": "The resource ID to backup. Set only if this archive should backup a single resource.", - "x-example": "DB1", - "nullable": true + "description": "Database password.", + "x-example": "********" }, - "resourceType": { + "database": { "type": "string", - "description": "The resource type to backup. Set only if this archive should backup a single resource.", - "x-example": "database", - "nullable": true + "description": "Database name.", + "x-example": "appwrite" + }, + "engine": { + "type": "string", + "description": "Database engine. Possible values: postgres, mysql, mariadb, mongodb.", + "x-example": "postgres" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL is required.", + "x-example": true + }, + "connectionString": { + "type": "string", + "description": "Full connection string.", + "x-example": "postgresql:\/\/appwrite:****@db-myproject-mydb.fra.appwrite.network:5432\/appwrite?sslmode=require" } }, "required": [ "$id", - "$createdAt", - "$updatedAt", - "policyId", - "size", - "status", - "startedAt", - "migrationId", - "services", - "resources" + "host", + "port", + "username", + "password", + "database", + "engine", + "ssl", + "connectionString" ], "example": { "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "policyId": "did8jx6ws45jana098ab7", - "size": 100000, - "status": "completed", - "startedAt": "2020-10-15T06:38:00.000+00:00", - "migrationId": "did8jx6ws45jana098ab7", - "services": "['databases', 'storage']", - "resources": "['databases', 'collections', 'attributes', 'indexes']", - "resourceId": "DB1", - "resourceType": "database" + "host": "db-myproject-mydb.fra.appwrite.network", + "port": 5432, + "username": "appwrite", + "password": "********", + "database": "appwrite", + "engine": "postgres", + "ssl": true, + "connectionString": "postgresql:\/\/appwrite:****@db-myproject-mydb.fra.appwrite.network:5432\/appwrite?sslmode=require" } }, - "billingAddress": { - "description": "BillingAddress", + "credit": { + "description": "Credit", "type": "object", "properties": { "$id": { "type": "string", - "description": "Region ID", - "x-example": "eu-fr" + "description": "Credit ID.", + "x-example": "5e5ea5c16897e" }, - "userId": { + "$createdAt": { "type": "string", - "description": "User ID", - "x-example": "5e5ea5c16897e" + "description": "Credit creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "streetAddress": { + "$updatedAt": { "type": "string", - "description": "Street address", - "x-example": "13th Avenue" + "description": "Credit update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "addressLine2": { + "$permissions": { + "type": "array", + "description": "Credit permissions. [Learn more about permissions](\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] + }, + "couponId": { "type": "string", - "description": "Address line 2", - "x-example": "" + "description": "coupon ID", + "x-example": "NEWBONUS" }, - "country": { + "userId": { "type": "string", - "description": "Address country", - "x-example": "USA" + "description": "ID of the User.", + "x-example": "5e5ea5c16897e" }, - "city": { + "teamId": { "type": "string", - "description": "city", - "x-example": "" + "description": "ID of the Team.", + "x-example": "5e5ea5c16897e" }, - "state": { + "credits": { + "type": "number", + "description": "Provided credit amount", + "x-example": 50, + "format": "double" + }, + "total": { + "type": "number", + "description": "Provided credit amount", + "x-example": 50, + "format": "double" + }, + "expiration": { "type": "string", - "description": "state", - "x-example": "" + "description": "Credit expiration time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "postalCode": { + "status": { "type": "string", - "description": "postal code", - "x-example": "" + "description": "Status of the credit. Can be one of `disabled`, `active` or `expired`.", + "x-example": "disabled" } }, "required": [ "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "couponId", "userId", - "streetAddress", - "addressLine2", - "country", - "city", - "state", - "postalCode" + "teamId", + "credits", + "total", + "expiration", + "status" ], "example": { - "$id": "eu-fr", + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "couponId": "NEWBONUS", "userId": "5e5ea5c16897e", - "streetAddress": "13th Avenue", - "addressLine2": "", - "country": "USA", - "city": "", - "state": "", - "postalCode": "" + "teamId": "5e5ea5c16897e", + "credits": 50, + "total": 50, + "expiration": "2020-10-15T06:38:00.000+00:00", + "status": "disabled" } }, - "billingPlan": { - "description": "billingPlan", + "creditAvailable": { + "description": "CreditAvailable", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Plan ID.", - "x-example": "tier-0" + "available": { + "type": "integer", + "description": "Total available credits for the organization.", + "x-example": 100, + "format": "int32" + } + }, + "required": [ + "available" + ], + "example": { + "available": 100 + } + }, + "creditList": { + "description": "CreditList", + "type": "object", + "properties": { + "credits": { + "type": "array", + "description": "Credits", + "items": { + "$ref": "#\/components\/schemas\/credit" + }, + "x-example": 5 }, - "name": { - "type": "string", - "description": "Plan name", - "x-example": "Hobby" + "total": { + "type": "integer", + "description": "Total number of credits", + "x-example": 5, + "format": "int32" }, - "desc": { + "available": { + "type": "number", + "description": "Total available credit balance in USD", + "x-example": 5, + "format": "double" + } + }, + "required": [ + "credits", + "total", + "available" + ], + "example": { + "credits": 5, + "total": 5, + "available": 5 + } + }, + "dedicatedDatabaseMetrics": { + "description": "DatabaseMetrics", + "type": "object", + "properties": { + "period": { "type": "string", - "description": "Plan description", - "x-example": "Hobby plan" + "description": "Metrics aggregation period. Possible values: 1h (last hour), 24h (last 24 hours), 7d (last 7 days), 30d (last 30 days).", + "x-example": "24h" }, - "order": { - "type": "integer", - "description": "Plan order", - "x-example": 0, - "format": "int32" + "cpuPercent": { + "type": "number", + "description": "Average CPU usage percentage.", + "x-example": 45.2, + "format": "double" }, - "price": { + "memoryPercent": { "type": "number", - "description": "Price", - "x-example": 25, + "description": "Average memory usage percentage.", + "x-example": 62.1, "format": "double" }, - "trial": { + "memoryUsedBytes": { "type": "integer", - "description": "Trial days", - "x-example": 14, + "description": "Memory used in bytes.", + "x-example": 536870912, "format": "int32" }, - "bandwidth": { + "memoryMaxBytes": { "type": "integer", - "description": "Bandwidth", - "x-example": 25, + "description": "Maximum memory available in bytes.", + "x-example": 1073741824, "format": "int32" }, - "storage": { + "storageUsedBytes": { "type": "integer", - "description": "Storage", - "x-example": 25, + "description": "Storage used in bytes.", + "x-example": 1073741824, "format": "int32" }, - "imageTransformations": { + "connectionsActive": { "type": "integer", - "description": "Image Transformations", - "x-example": 100, + "description": "Current active connections.", + "x-example": 15, "format": "int32" }, - "screenshotsGenerated": { + "connectionsMax": { "type": "integer", - "description": "Screenshots generated", - "x-example": 50, + "description": "Maximum connections configured.", + "x-example": 100, "format": "int32" }, - "members": { - "type": "integer", - "description": "Members", - "x-example": 25, - "format": "int32" + "iopsRead": { + "type": "number", + "description": "Average read IOPS.", + "x-example": 125.5, + "format": "double" }, - "webhooks": { - "type": "integer", - "description": "Webhooks", - "x-example": 25, - "format": "int32" + "iopsWrite": { + "type": "number", + "description": "Average write IOPS.", + "x-example": 45.3, + "format": "double" }, - "projects": { - "type": "integer", - "description": "Projects", - "x-example": 2, - "format": "int32" + "qps": { + "type": "number", + "description": "Queries per second.", + "x-example": 230.7, + "format": "double" + } + }, + "required": [ + "period", + "cpuPercent", + "memoryPercent", + "memoryUsedBytes", + "memoryMaxBytes", + "storageUsedBytes", + "connectionsActive", + "connectionsMax", + "iopsRead", + "iopsWrite", + "qps" + ], + "example": { + "period": "24h", + "cpuPercent": 45.2, + "memoryPercent": 62.1, + "memoryUsedBytes": 536870912, + "memoryMaxBytes": 1073741824, + "storageUsedBytes": 1073741824, + "connectionsActive": 15, + "connectionsMax": 100, + "iopsRead": 125.5, + "iopsWrite": 45.3, + "qps": 230.7 + } + }, + "dedicatedDatabase": { + "description": "DedicatedDatabase", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Dedicated database ID.", + "x-example": "5e5ea5c16897e" }, - "platforms": { - "type": "integer", - "description": "Platforms", - "x-example": 3, - "format": "int32" + "$createdAt": { + "type": "string", + "description": "Database creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "users": { - "type": "integer", - "description": "Users", - "x-example": 25, - "format": "int32" + "$updatedAt": { + "type": "string", + "description": "Database update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "teams": { - "type": "integer", - "description": "Teams", - "x-example": 25, - "format": "int32" + "projectId": { + "type": "string", + "description": "Project ID that owns this database.", + "x-example": "5e5ea5c16897e" }, - "databases": { - "type": "integer", - "description": "Databases", - "x-example": 25, - "format": "int32" + "name": { + "type": "string", + "description": "Database display name.", + "x-example": "My Production Database" }, - "databasesReads": { - "type": "integer", - "description": "Database reads per month", - "x-example": 500000, - "format": "int32" + "type": { + "type": "string", + "description": "Database type: shared (serverless) or dedicated (always-on).", + "x-example": "dedicated" }, - "databasesWrites": { - "type": "integer", - "description": "Database writes per month", - "x-example": 250000, - "format": "int32" + "region": { + "type": "string", + "description": "Region identifier (e.g., fra, nyc, syd).", + "x-example": "fra" + }, + "engine": { + "type": "string", + "description": "Database engine: postgres, mysql, mariadb, or mongodb.", + "x-example": "postgres" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "x-example": "16" + }, + "specification": { + "type": "string", + "description": "Specification identifier.", + "x-example": "starter" + }, + "backend": { + "type": "string", + "description": "Database backend provider. Possible values: prisma, edge.", + "x-example": "edge" + }, + "hostname": { + "type": "string", + "description": "Database hostname for connections.", + "x-example": "db-myproject-mydb.fra.appwrite.network" }, - "databasesBatchSize": { + "connectionPort": { "type": "integer", - "description": "Database batch size limit", - "x-example": 100, + "description": "Database port for connections.", + "x-example": 5432, "format": "int32" }, - "buckets": { - "type": "integer", - "description": "Buckets", - "x-example": 25, - "format": "int32" + "connectionUser": { + "type": "string", + "description": "Database username for connections.", + "x-example": "appwrite_user" }, - "fileSize": { - "type": "integer", - "description": "File size", - "x-example": 25, - "format": "int32" + "connectionPassword": { + "type": "string", + "description": "Database password for connections.", + "x-example": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }, - "functions": { - "type": "integer", - "description": "Functions", - "x-example": 25, - "format": "int32" + "connectionString": { + "type": "string", + "description": "Full database connection string (URI format).", + "x-example": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.network:5432\/postgres" }, - "sites": { - "type": "integer", - "description": "Sites", - "x-example": 1, - "format": "int32" + "status": { + "type": "string", + "description": "Database status. Possible values: provisioning, ready, inactive, paused, failed, deleted, restoring, scaling.", + "x-example": "ready" }, - "executions": { - "type": "integer", - "description": "Function executions", - "x-example": 25, - "format": "int32" + "containerStatus": { + "type": "string", + "description": "Container status for shared databases: active or inactive.", + "x-example": "active" }, - "executionsRetentionCount": { - "type": "integer", - "description": "Rolling max executions retained per function\/site", - "x-example": 10000, - "format": "int32" + "lastAccessedAt": { + "type": "string", + "description": "Last activity timestamp in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "GBHours": { - "type": "integer", - "description": "GB hours for functions", - "x-example": 100, - "format": "int32" + "idleUntil": { + "type": "string", + "description": "Timestamp when container will be considered idle and scale to zero (ISO 8601 format).", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "realtime": { + "idleTimeoutMinutes": { "type": "integer", - "description": "Realtime connections", - "x-example": 25, + "description": "Minutes of inactivity before container scales to zero.", + "x-example": 15, "format": "int32" }, - "realtimeMessages": { + "cpu": { "type": "integer", - "description": "Realtime messages", - "x-example": 100000, + "description": "CPU allocated in millicores.", + "x-example": 2000, "format": "int32" }, - "messages": { + "memory": { "type": "integer", - "description": "Messages per month", - "x-example": 1000, + "description": "Memory allocated in MB.", + "x-example": 4096, "format": "int32" }, - "topics": { + "storage": { "type": "integer", - "description": "Topics for messaging", - "x-example": 1, + "description": "Storage allocated in GB.", + "x-example": 100, "format": "int32" }, - "authPhone": { - "type": "integer", - "description": "SMS authentications per month", - "x-example": 10, - "format": "int32" + "storageClass": { + "type": "string", + "description": "Storage class: ssd, nvme, or hdd.", + "x-example": "ssd" }, - "domains": { + "storageMaxGb": { "type": "integer", - "description": "Custom domains", - "x-example": 5, + "description": "Maximum storage allowed in GB. 0 means use system default.", + "x-example": 100, "format": "int32" }, - "logs": { + "nodePool": { + "type": "string", + "description": "Kubernetes node pool where the database is scheduled.", + "x-example": "db-pool-4vcpu-8gb" + }, + "highAvailability": { + "type": "boolean", + "description": "Whether high availability is enabled.", + "x-example": true + }, + "highAvailabilityReplicaCount": { "type": "integer", - "description": "Log days", - "x-example": 25, + "description": "Number of high availability replicas.", + "x-example": 2, "format": "int32" }, - "projectInactivityDays": { + "highAvailabilitySyncMode": { + "type": "string", + "description": "Replication sync mode: async, sync, or quorum.", + "x-example": "async" + }, + "networkMaxConnections": { "type": "integer", - "description": "Number of days of console inactivity before a project is paused. 0 means pausing is disabled.", - "x-example": 7, + "description": "Maximum concurrent connections.", + "x-example": 500, "format": "int32" }, - "alertLimit": { + "networkIdleTimeoutSeconds": { "type": "integer", - "description": "Alert threshold percentage", - "x-example": 80, + "description": "Connection idle timeout in seconds.", + "x-example": 900, "format": "int32" }, - "usage": { - "type": "object", - "description": "Additional resources", - "x-example": null, - "items": { - "$ref": "#\/components\/schemas\/usageBillingPlan" - } - }, - "addons": { - "type": "object", - "description": "Addons", - "x-example": null, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", "items": { - "$ref": "#\/components\/schemas\/billingPlanAddon" - } - }, - "budgetCapEnabled": { - "type": "boolean", - "description": "Budget cap enabled or disabled.", - "x-example": true + "type": "string" + }, + "x-example": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ] }, - "customSmtp": { + "backupEnabled": { "type": "boolean", - "description": "Custom SMTP", + "description": "Whether automatic backups are enabled.", "x-example": true }, - "emailBranding": { + "backupPitr": { "type": "boolean", - "description": "Appwrite branding in email", + "description": "Whether point-in-time recovery is enabled.", "x-example": true }, - "requiresPaymentMethod": { - "type": "boolean", - "description": "Does plan require payment method", - "x-example": true + "backupCron": { + "type": "string", + "description": "Backup schedule in cron format.", + "x-example": "0 3 * * *" }, - "requiresBillingAddress": { - "type": "boolean", - "description": "Does plan require billing address", - "x-example": true + "backupRetentionDays": { + "type": "integer", + "description": "Number of days to retain backups.", + "x-example": 30, + "format": "int32" }, - "isAvailable": { - "type": "boolean", - "description": "Is the billing plan available", - "x-example": true + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "x-example": 14, + "format": "int32" }, - "selfService": { + "storageAutoscaling": { "type": "boolean", - "description": "Can user change the plan themselves", + "description": "Whether automatic storage expansion is enabled.", "x-example": true }, - "premiumSupport": { - "type": "boolean", - "description": "Does plan enable premium support", - "x-example": true + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage that triggers automatic expansion.", + "x-example": 85, + "format": "int32" }, - "budgeting": { - "type": "boolean", - "description": "Does plan support budget cap", - "x-example": true + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "x-example": 500, + "format": "int32" }, - "supportsMockNumbers": { - "type": "boolean", - "description": "Does plan support mock numbers", - "x-example": true + "maintenanceWindowDay": { + "type": "string", + "description": "Day of the week for the maintenance window. Possible values: sun, mon, tue, wed, thu, fri, sat.", + "x-example": "sun" }, - "supportsOrganizationRoles": { - "type": "boolean", - "description": "Does plan support organization roles", - "x-example": true + "maintenanceWindowHourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) when the maintenance window starts.", + "x-example": 3, + "format": "int32" }, - "supportsCredits": { + "metricsEnabled": { "type": "boolean", - "description": "Does plan support credit", + "description": "Whether metrics collection is enabled.", "x-example": true }, - "supportsDisposableEmailValidation": { + "sqlApiEnabled": { "type": "boolean", - "description": "Does plan support blocking disposable email addresses.", + "description": "Whether the SQL API sidecar is enabled for this database.", "x-example": true }, - "supportsCanonicalEmailValidation": { - "type": "boolean", - "description": "Does plan support requiring canonical email addresses.", - "x-example": true + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types accepted by the SQL API. Allowed values: SELECT, INSERT, UPDATE, DELETE.", + "items": { + "type": "string" + }, + "x-example": "SELECT" }, - "supportsFreeEmailValidation": { - "type": "boolean", - "description": "Does plan support blocking free email addresses.", - "x-example": true + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution. Results larger than this are truncated.", + "x-example": 10000, + "format": "int32" }, - "backupsEnabled": { - "type": "boolean", - "description": "Does plan support backup policies.", - "x-example": true + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes. Results larger than this are truncated.", + "x-example": 10485760, + "format": "int32" }, - "usagePerProject": { - "type": "boolean", - "description": "Whether usage addons are calculated per project.", - "x-example": true + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Maximum server-side SQL API execution time in seconds before the query is cancelled.", + "x-example": 30, + "format": "int32" }, - "supportedAddons": { - "type": "object", - "description": "Supported addons for this plan", - "x-example": null, + "error": { + "type": "string", + "description": "Error message if status is failed.", + "x-example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "projectId", + "name", + "type", + "region", + "engine", + "version", + "specification", + "backend", + "hostname", + "connectionPort", + "connectionUser", + "connectionPassword", + "connectionString", + "status", + "containerStatus", + "lastAccessedAt", + "idleUntil", + "idleTimeoutMinutes", + "cpu", + "memory", + "storage", + "storageClass", + "storageMaxGb", + "nodePool", + "highAvailability", + "highAvailabilityReplicaCount", + "highAvailabilitySyncMode", + "networkMaxConnections", + "networkIdleTimeoutSeconds", + "networkIPAllowlist", + "backupEnabled", + "backupPitr", + "backupCron", + "backupRetentionDays", + "pitrRetentionDays", + "storageAutoscaling", + "storageAutoscalingThresholdPercent", + "storageAutoscalingMaxGb", + "maintenanceWindowDay", + "maintenanceWindowHourUtc", + "metricsEnabled", + "sqlApiEnabled", + "sqlApiAllowedStatements", + "sqlApiMaxRows", + "sqlApiMaxBytes", + "sqlApiTimeoutSeconds", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "projectId": "5e5ea5c16897e", + "name": "My Production Database", + "type": "dedicated", + "region": "fra", + "engine": "postgres", + "version": "16", + "specification": "starter", + "backend": "edge", + "hostname": "db-myproject-mydb.fra.appwrite.network", + "connectionPort": 5432, + "connectionUser": "appwrite_user", + "connectionPassword": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", + "connectionString": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.network:5432\/postgres", + "status": "ready", + "containerStatus": "active", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00", + "idleUntil": "2020-10-15T06:38:00.000+00:00", + "idleTimeoutMinutes": 15, + "cpu": 2000, + "memory": 4096, + "storage": 100, + "storageClass": "ssd", + "storageMaxGb": 100, + "nodePool": "db-pool-4vcpu-8gb", + "highAvailability": true, + "highAvailabilityReplicaCount": 2, + "highAvailabilitySyncMode": "async", + "networkMaxConnections": 500, + "networkIdleTimeoutSeconds": 900, + "networkIPAllowlist": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ], + "backupEnabled": true, + "backupPitr": true, + "backupCron": "0 3 * * *", + "backupRetentionDays": 30, + "pitrRetentionDays": 14, + "storageAutoscaling": true, + "storageAutoscalingThresholdPercent": 85, + "storageAutoscalingMaxGb": 500, + "maintenanceWindowDay": "sun", + "maintenanceWindowHourUtc": 3, + "metricsEnabled": true, + "sqlApiEnabled": true, + "sqlApiAllowedStatements": "SELECT", + "sqlApiMaxRows": 10000, + "sqlApiMaxBytes": 10485760, + "sqlApiTimeoutSeconds": 30, + "error": "" + } + }, + "dedicatedDatabaseExecution": { + "description": "Execution", + "type": "object", + "properties": { + "rows": { + "type": "array", + "description": "Result rows as a list of column-name => value maps. Empty for non-returning statements.", "items": { - "$ref": "#\/components\/schemas\/billingPlanSupportedAddons" - } + "type": "object" + }, + "x-example": [ + { + "id": 1, + "name": "example" + } + ] }, - "backupPolicies": { + "rowCount": { "type": "integer", - "description": "How many policies does plan support", - "x-example": true, + "description": "Number of rows returned (for SELECT) or affected (for INSERT\/UPDATE\/DELETE).", + "x-example": 1, "format": "int32" }, - "deploymentSize": { - "type": "integer", - "description": "Maximum function and site deployment size in MB", - "x-example": 30, - "format": "int32" + "columns": { + "type": "array", + "description": "Column metadata in result-set order.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseExecutionColumn" + }, + "x-example": [] }, - "buildSize": { + "durationMs": { "type": "integer", - "description": "Maximum function and site deployment size in MB", - "x-example": 2000, + "description": "Server-side execution time in milliseconds.", + "x-example": 12, "format": "int32" }, - "databasesAllowEncrypt": { + "truncated": { "type": "boolean", - "description": "Does the plan support encrypted string attributes or not.", + "description": "True when the configured row or byte cap was hit and the result was truncated.", "x-example": false }, - "limits": { - "type": "object", - "description": "Plan specific limits", - "x-example": null, - "items": { - "$ref": "#\/components\/schemas\/billingPlanLimits" - }, - "nullable": true + "bytes": { + "type": "integer", + "description": "Serialised payload size in bytes.", + "x-example": 1024, + "format": "int32" + } + }, + "required": [ + "rows", + "rowCount", + "columns", + "durationMs", + "truncated", + "bytes" + ], + "example": { + "rows": [ + { + "id": 1, + "name": "example" + } + ], + "rowCount": 1, + "columns": [], + "durationMs": 12, + "truncated": false, + "bytes": 1024 + } + }, + "dedicatedDatabaseExecutionColumn": { + "description": "ExecutionColumn", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Column name as returned by the database.", + "x-example": "id" }, - "group": { + "type": { "type": "string", - "description": "Group of this billing plan for variants", - "x-example": "pro", - "enum": [ - "starter", - "pro", - "scale" - ] + "description": "Engine-specific column type (e.g. int4, text, timestamptz).", + "x-example": "int4" + } + }, + "required": [ + "name", + "type" + ], + "example": { + "name": "id", + "type": "int4" + } + }, + "dedicatedDatabaseRestoration": { + "description": "Restoration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Restoration ID.", + "x-example": "5e5ea5c16897e" }, - "program": { - "type": "object", - "description": "Details of the program this plan is a part of.", - "x-example": null, - "items": { - "$ref": "#\/components\/schemas\/program" - }, - "nullable": true + "$createdAt": { + "type": "string", + "description": "Restoration creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID being restored.", + "x-example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "x-example": "5e5ea5c16897e" + }, + "backupId": { + "type": "string", + "description": "Backup ID used for restoration (null for PITR).", + "x-example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Restoration type. Possible values: backup (restore from a specific backup snapshot), pitr (point-in-time recovery to a specific timestamp).", + "x-example": "backup" + }, + "status": { + "type": "string", + "description": "Restoration status. Possible values: pending (queued for processing), running (currently in progress), completed (successfully finished), failed (encountered an error).", + "x-example": "completed" + }, + "targetTime": { + "type": "string", + "description": "Target time for PITR restoration in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "startedAt": { + "type": "string", + "description": "Restoration start time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "completedAt": { + "type": "string", + "description": "Restoration completion time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "error": { + "type": "string", + "description": "Error message if restoration failed.", + "x-example": "" } }, "required": [ "$id", - "name", - "desc", - "order", - "price", - "trial", - "bandwidth", - "storage", - "imageTransformations", - "screenshotsGenerated", - "members", - "webhooks", - "projects", - "platforms", - "users", - "teams", - "databases", - "databasesReads", - "databasesWrites", - "databasesBatchSize", - "buckets", - "fileSize", - "functions", - "sites", - "executions", - "executionsRetentionCount", - "GBHours", - "realtime", - "realtimeMessages", - "messages", - "topics", - "authPhone", - "domains", - "logs", - "projectInactivityDays", - "alertLimit", - "usage", - "addons", - "budgetCapEnabled", - "customSmtp", - "emailBranding", - "requiresPaymentMethod", - "requiresBillingAddress", - "isAvailable", - "selfService", - "premiumSupport", - "budgeting", - "supportsMockNumbers", - "supportsOrganizationRoles", - "supportsCredits", - "supportsDisposableEmailValidation", - "supportsCanonicalEmailValidation", - "supportsFreeEmailValidation", - "backupsEnabled", - "usagePerProject", - "supportedAddons", - "backupPolicies", - "deploymentSize", - "buildSize", - "databasesAllowEncrypt", - "group" + "$createdAt", + "databaseId", + "projectId", + "backupId", + "type", + "status", + "targetTime", + "startedAt", + "completedAt", + "error" ], "example": { - "$id": "tier-0", - "name": "Hobby", - "desc": "Hobby plan", - "order": 0, - "price": 25, - "trial": 14, - "bandwidth": 25, - "storage": 25, - "imageTransformations": 100, - "screenshotsGenerated": 50, - "members": 25, - "webhooks": 25, - "projects": 2, - "platforms": 3, - "users": 25, - "teams": 25, - "databases": 25, - "databasesReads": 500000, - "databasesWrites": 250000, - "databasesBatchSize": 100, - "buckets": 25, - "fileSize": 25, - "functions": 25, - "sites": 1, - "executions": 25, - "executionsRetentionCount": 10000, - "GBHours": 100, - "realtime": 25, - "realtimeMessages": 100000, - "messages": 1000, - "topics": 1, - "authPhone": 10, - "domains": 5, - "logs": 25, - "projectInactivityDays": 7, - "alertLimit": 80, - "usage": null, - "addons": null, - "budgetCapEnabled": true, - "customSmtp": true, - "emailBranding": true, - "requiresPaymentMethod": true, - "requiresBillingAddress": true, - "isAvailable": true, - "selfService": true, - "premiumSupport": true, - "budgeting": true, - "supportsMockNumbers": true, - "supportsOrganizationRoles": true, - "supportsCredits": true, - "supportsDisposableEmailValidation": true, - "supportsCanonicalEmailValidation": true, - "supportsFreeEmailValidation": true, - "backupsEnabled": true, - "usagePerProject": true, - "supportedAddons": null, - "backupPolicies": true, - "deploymentSize": 30, - "buildSize": 2000, - "databasesAllowEncrypt": false, - "limits": null, - "group": "pro", - "program": null + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "projectId": "5e5ea5c16897e", + "backupId": "5e5ea5c16897e", + "type": "backup", + "status": "completed", + "targetTime": "2020-10-15T06:38:00.000+00:00", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "error": "" } }, - "billingPlanAddon": { - "description": "BillingPlanAddon", + "databaseStatus": { + "description": "Status", "type": "object", "properties": { - "seats": { + "health": { + "type": "string", + "description": "Overall health status: healthy, degraded, or unhealthy.", + "x-example": "healthy" + }, + "ready": { + "type": "boolean", + "description": "Whether the database is ready to accept connections.", + "x-example": true + }, + "engine": { + "type": "string", + "description": "Database engine: postgres, mysql, mariadb, or mongodb.", + "x-example": "postgres" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "x-example": "17" + }, + "uptime": { + "type": "integer", + "description": "Database uptime in seconds.", + "x-example": 86400, + "format": "int32" + }, + "connections": { "type": "object", - "description": "Addon seats", - "x-example": null, + "description": "Connection statistics.", + "x-example": { + "current": 12, + "max": 100 + }, "items": { - "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + "$ref": "#\/components\/schemas\/databaseStatusConnections" } }, - "projects": { - "type": "object", - "description": "Addon projects", - "x-example": null, + "replicas": { + "type": "array", + "description": "List of database replicas and their status.", "items": { - "$ref": "#\/components\/schemas\/billingPlanAddonDetails" + "$ref": "#\/components\/schemas\/databaseStatusReplica" + }, + "x-example": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "lagSeconds": 0.2 + } + ] + }, + "volumes": { + "type": "array", + "description": "Storage volume information.", + "items": { + "$ref": "#\/components\/schemas\/databaseStatusVolume" + }, + "x-example": { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } } } }, "required": [ - "seats", - "projects" + "health", + "ready", + "engine", + "version", + "uptime", + "connections", + "replicas", + "volumes" ], "example": { - "seats": null, - "projects": null + "health": "healthy", + "ready": true, + "engine": "postgres", + "version": "17", + "uptime": 86400, + "connections": { + "current": 12, + "max": 100 + }, + "replicas": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "lagSeconds": 0.2 + } + ], + "volumes": { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } } }, - "billingPlanAddonDetails": { - "description": "BillingPlanAddonDetails", + "dnsRecord": { + "description": "DNSRecord", "type": "object", "properties": { - "supported": { - "type": "boolean", - "description": "Is the addon supported in the plan?", - "x-example": true + "$id": { + "type": "string", + "description": "DNS Record ID.", + "x-example": "5f40a6e10c65e" }, - "planIncluded": { - "type": "integer", - "description": "Addon plan included value", - "x-example": 1, - "format": "int32" + "$createdAt": { + "type": "string", + "description": "DNS Record creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "limit": { - "type": "integer", - "description": "Addon limit", - "x-example": 5, - "format": "int32" + "$updatedAt": { + "type": "string", + "description": "DNS Record update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, "type": { "type": "string", - "description": "Addon type", - "x-example": "numeric" + "description": "DNS record type (e.g. A, CNAME, MX).", + "x-example": "A" }, - "currency": { + "name": { "type": "string", - "description": "Price currency", - "x-example": "USD" - }, - "price": { - "type": "number", - "description": "Price", - "x-example": 5, - "format": "double" + "description": "Record name or subdomain.", + "x-example": "mail" }, "value": { + "type": "string", + "description": "Value of the record (IP address, domain, etc.).", + "x-example": "192.0.2.1" + }, + "ttl": { "type": "integer", - "description": "Resource value", - "x-example": 25, + "description": "Time to live (in seconds).", + "x-example": 86400, "format": "int32" }, - "invoiceDesc": { + "priority": { + "type": "integer", + "description": "Record priority (commonly used for MX).", + "x-example": 10, + "format": "int32" + }, + "lock": { + "type": "boolean", + "description": "Whether this record is locked (read-only).", + "x-example": false + }, + "weight": { + "type": "integer", + "description": "Record weight (used for SRV records).", + "x-example": 10, + "format": "int32" + }, + "port": { + "type": "integer", + "description": "Target port (used for SRV records).", + "x-example": 443, + "format": "int32" + }, + "comment": { "type": "string", - "description": "Description on invoice", - "x-example": "" + "description": "Comment for the DNS record.", + "x-example": "Mail server record" } }, "required": [ - "supported", - "planIncluded", - "limit", + "$id", + "$createdAt", + "$updatedAt", "type", - "currency", - "price", + "name", "value", - "invoiceDesc" + "ttl", + "priority", + "lock", + "weight", + "port", + "comment" ], "example": { - "supported": true, - "planIncluded": 1, - "limit": 5, - "type": "numeric", - "currency": "USD", - "price": 5, - "value": 25, - "invoiceDesc": "" + "$id": "5f40a6e10c65e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "type": "A", + "name": "mail", + "value": "192.0.2.1", + "ttl": 86400, + "priority": 10, + "lock": false, + "weight": 10, + "port": 443, + "comment": "Mail server record" } }, - "billingPlanLimits": { - "description": "BillingPlanLimits", + "domain": { + "description": "Domain", "type": "object", "properties": { - "credits": { - "type": "integer", - "description": "Credits limit per billing cycle", - "x-example": 100, - "format": "int32", - "nullable": true + "$id": { + "type": "string", + "description": "Domain ID.", + "x-example": "5e5ea5c16897e" }, - "dailyCredits": { - "type": "integer", - "description": "Daily credits limit (if applicable)", - "x-example": 5, - "format": "int32", - "nullable": true - } - }, - "example": { - "credits": 100, - "dailyCredits": 5 - } - }, - "billingPlanSupportedAddons": { - "description": "BillingPlanSupportedAddons", - "type": "object", - "properties": { - "baa": { + "$createdAt": { + "type": "string", + "description": "Domain creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Domain update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "domain": { + "type": "string", + "description": "Domain name.", + "x-example": "example.com" + }, + "registrar": { + "type": "string", + "description": "Domain registrar (e.g. \"appwrite\" or \"third_party\").", + "x-example": "appwrite" + }, + "nameservers": { + "type": "string", + "description": "Nameservers setting. \"Appwrite\" or empty string.", + "x-example": "Appwrite" + }, + "expire": { + "type": "string", + "description": "Domain expiry date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "renewal": { + "type": "string", + "description": "Domain renewal date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "autoRenewal": { "type": "boolean", - "description": "Whether the plan supports BAA (Business Associate Agreement) addon", + "description": "If set to true, the domain will automatically renew.", "x-example": true + }, + "renewalPrice": { + "type": "integer", + "description": "Renewal price (in cents).", + "x-example": 2599, + "format": "int32" + }, + "transferStatus": { + "type": "string", + "description": "Transfer status for domains being transferred in.", + "x-example": "pending_registry", + "enum": [ + "transferrable", + "not_transferrable", + "pending_owner", + "pending_admin", + "pending_registry", + "completed", + "cancelled", + "service_unavailable" + ], + "x-enum-name": "DomainTransferStatusEnum" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "x-example": "5e5ea5c16897e" + }, + "dnsRecords": { + "type": "array", + "description": "Dns records", + "items": { + "$ref": "#\/components\/schemas\/dnsRecord" + }, + "x-example": [] } }, "required": [ - "baa" + "$id", + "$createdAt", + "$updatedAt", + "domain", + "registrar", + "nameservers", + "expire", + "renewal", + "autoRenewal", + "renewalPrice", + "transferStatus", + "teamId", + "dnsRecords" ], "example": { - "baa": true + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "domain": "example.com", + "registrar": "appwrite", + "nameservers": "Appwrite", + "expire": "2020-10-15T06:38:00.000+00:00", + "renewal": "2020-10-15T06:38:00.000+00:00", + "autoRenewal": true, + "renewalPrice": 2599, + "transferStatus": "pending_registry", + "teamId": "5e5ea5c16897e", + "dnsRecords": [] } }, - "billingLimits": { - "description": "BillingLimits", + "domainPrice": { + "description": "DomainPrice", "type": "object", "properties": { - "bandwidth": { - "type": "integer", - "description": "Bandwidth limit", - "x-example": 5, - "format": "int32" - }, - "storage": { - "type": "integer", - "description": "Storage limit", - "x-example": 150, - "format": "int32" - }, - "users": { - "type": "integer", - "description": "Users limit", - "x-example": 200000, - "format": "int32" + "domain": { + "type": "string", + "description": "Domain name.", + "x-example": "example.com" }, - "executions": { - "type": "integer", - "description": "Executions limit", - "x-example": 750000, - "format": "int32" + "tld": { + "type": "string", + "description": "Top-level domain for the requested domain.", + "x-example": "com" }, - "GBHours": { - "type": "integer", - "description": "GBHours limit", - "x-example": 100, - "format": "int32" + "available": { + "type": "boolean", + "description": "Whether the domain is currently available for registration.", + "x-example": true }, - "imageTransformations": { - "type": "integer", - "description": "Image transformations limit", - "x-example": 100, - "format": "int32" + "price": { + "type": "number", + "description": "Domain registration price.", + "x-example": 25.99, + "format": "double" }, - "authPhone": { + "periodYears": { "type": "integer", - "description": "Auth phone limit", - "x-example": 10, + "description": "Price period in years.", + "x-example": 1, "format": "int32" }, - "budgetLimit": { - "type": "integer", - "description": "Budget limit percentage", - "x-example": 100, - "format": "int32" + "premium": { + "type": "boolean", + "description": "Whether the domain is a premium domain.", + "x-example": false } }, "required": [ - "bandwidth", - "storage", - "users", - "executions", - "GBHours", - "imageTransformations", - "authPhone", - "budgetLimit" + "domain", + "tld", + "available", + "price", + "periodYears", + "premium" ], "example": { - "bandwidth": 5, - "storage": 150, - "users": 200000, - "executions": 750000, - "GBHours": 100, - "imageTransformations": 100, - "authPhone": 10, - "budgetLimit": 100 + "domain": "example.com", + "tld": "com", + "available": true, + "price": 25.99, + "periodYears": 1, + "premium": false } }, - "block": { - "description": "Block", + "domainPurchase": { + "description": "DomainPurchase", "type": "object", "properties": { + "$id": { + "type": "string", + "description": "Purchase\/invoice ID.", + "x-example": "5e5ea5c16897e" + }, "$createdAt": { "type": "string", - "description": "Block creation date in ISO 8601 format.", + "description": "Purchase creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "resourceType": { + "$updatedAt": { "type": "string", - "description": "Resource type that is blocked", - "x-example": "project" + "description": "Purchase update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "resourceId": { + "domainId": { "type": "string", - "description": "Resource identifier that is blocked", + "description": "Domain document ID.", "x-example": "5e5ea5c16897e" }, - "reason": { + "domain": { "type": "string", - "description": "Reason for the block. Can be null if no reason was provided.", - "x-example": "Payment overdue", - "nullable": true + "description": "Domain name.", + "x-example": "example.com" }, - "expiredAt": { + "organizationId": { "type": "string", - "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "description": "Team ID that owns the domain.", + "x-example": "5e5ea5c16897e" }, - "projectName": { + "status": { "type": "string", - "description": "Name of the project this block applies to.", - "x-example": "My Project" + "description": "Domain purchase status.", + "x-example": "pending", + "enum": [ + "pending", + "succeeded", + "failed", + "cancelled" + ], + "x-enum-name": "DomainPurchaseStatus" }, - "region": { + "clientSecret": { "type": "string", - "description": "Region of the project this block applies to.", - "x-example": "fra" + "description": "Stripe client secret for 3DS; empty when not applicable.", + "x-example": "" }, - "organizationName": { - "type": "string", - "description": "Name of the organization that owns the project.", - "x-example": "Acme Inc." + "amount": { + "type": "number", + "description": "Purchase amount.", + "x-example": 25.99, + "format": "double" }, - "organizationId": { + "currency": { "type": "string", - "description": "ID of the organization that owns the project.", - "x-example": "5e5ea5c16897e" + "description": "Currency code.", + "x-example": "USD" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "domainId", + "domain", + "organizationId", + "status", + "clientSecret", + "amount", + "currency" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "domainId": "5e5ea5c16897e", + "domain": "example.com", + "organizationId": "5e5ea5c16897e", + "status": "pending", + "clientSecret": "", + "amount": 25.99, + "currency": "USD" + } + }, + "domainSuggestion": { + "description": "DomainSuggestion", + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain suggestion.", + "x-example": "example.com" }, - "billingPlan": { + "premium": { + "type": "boolean", + "description": "Is the domain premium?", + "x-example": true + }, + "price": { + "type": "number", + "description": "Domain price.", + "x-example": 25.99, + "format": "double", + "nullable": true + }, + "available": { + "type": "boolean", + "description": "Is the domain available?", + "x-example": true + } + }, + "required": [ + "domain", + "premium", + "available" + ], + "example": { + "domain": "example.com", + "premium": true, + "price": 25.99, + "available": true + } + }, + "domainTransferOut": { + "description": "domainTransferOut", + "type": "object", + "properties": { + "authCode": { "type": "string", - "description": "Billing plan of the organization that owns the project.", - "x-example": "pro" + "description": "Domain transfer authorization code.", + "x-example": "mock_1a2b3c4d" } }, "required": [ - "$createdAt", - "resourceType", - "resourceId", - "projectName", - "region", - "organizationName", - "organizationId", - "billingPlan" + "authCode" ], "example": { - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "resourceType": "project", - "resourceId": "5e5ea5c16897e", - "reason": "Payment overdue", - "expiredAt": "2020-10-15T06:38:00.000+00:00", - "projectName": "My Project", - "region": "fra", - "organizationName": "Acme Inc.", - "organizationId": "5e5ea5c16897e", - "billingPlan": "pro" + "authCode": "mock_1a2b3c4d" } }, - "blockDelete": { - "description": "BlockDelete", + "domainTransferStatus": { + "description": "domainTransferStatus", "type": "object", "properties": { - "deleted": { - "type": "integer", - "description": "Number of blocks deleted", - "x-example": 1, - "format": "int32" + "status": { + "type": "string", + "description": "Transfer status.", + "x-example": "pending_registry", + "enum": [ + "transferrable", + "not_transferrable", + "pending_owner", + "pending_admin", + "pending_registry", + "completed", + "cancelled", + "service_unavailable" + ], + "x-enum-name": "DomainTransferStatusEnum" }, - "blocks": { - "type": "array", - "description": "List of deleted blocks", - "items": { - "$ref": "#\/components\/schemas\/block" - }, - "x-example": [] + "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": [ - "deleted", - "blocks" + "status", + "reason", + "timestamp" ], "example": { - "deleted": 1, - "blocks": [] + "status": "pending_registry", + "reason": "Transfer in progress", + "timestamp": "2020-10-15T06:38:00.000+00:00" } }, - "campaign": { - "description": "Campaign", + "downgradeFeedback": { + "description": "Downgrade Feedback", "type": "object", "properties": { "$id": { "type": "string", - "description": "Campaign ID", - "x-example": "" + "description": "Feedback ID.", + "x-example": "5e5ea5c16897e" }, - "template": { + "$createdAt": { "type": "string", - "description": "Campaign template", - "x-example": "" + "description": "Feedback creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "title": { + "$updatedAt": { "type": "string", - "description": "Campaign title", - "x-example": "" + "description": "Feedback update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "description": { + "title": { "type": "string", - "description": "Campaign description", - "x-example": "" + "description": "Feedback reason", + "x-example": "I encountered a bug and outage that caused my app to lose its value" }, - "plan": { + "message": { "type": "string", - "description": "Billing plan campaign is associated with", - "x-example": "", - "nullable": true + "description": "Feedback message", + "x-example": "The platform experienced significant downtime which affected my users." }, - "cta": { + "fromPlanId": { "type": "string", - "description": "Campaign CTA", - "x-example": "", - "nullable": true + "description": "Plan ID downgrading from", + "x-example": "pro" }, - "claimed": { + "toPlanId": { "type": "string", - "description": "Campaign info when claimed", - "x-example": "", - "nullable": true + "description": "Plan ID downgrading to", + "x-example": "free" }, - "unclaimed": { + "teamId": { "type": "string", - "description": "Campaign infor when unclaimed", - "x-example": "", - "nullable": true - }, - "image": { - "type": "object", - "description": "Campaign images", - "x-example": "", - "nullable": true - }, - "reviews": { - "type": "array", - "description": "Campaign reviews", - "items": { - "$ref": "#\/components\/schemas\/review" - }, - "x-example": "", - "nullable": true + "description": "Organization ID", + "x-example": "5e5ea5c16897e" }, - "onlyNewOrgs": { - "type": "boolean", - "description": "Campaign valid only for new orgs.", - "x-example": "", - "nullable": true + "userId": { + "type": "string", + "description": "User ID who submitted feedback", + "x-example": "5e5ea5c16897e" }, - "footer": { - "type": "boolean", - "description": "Is footer", - "x-example": "", - "nullable": true + "version": { + "type": "string", + "description": "Console version", + "x-example": "1.8.0" } }, "required": [ "$id", - "template", + "$createdAt", + "$updatedAt", "title", - "description" + "message", + "fromPlanId", + "toPlanId", + "teamId", + "userId", + "version" ], "example": { - "$id": "", - "template": "", - "title": "", - "description": "", - "plan": "", - "cta": "", - "claimed": "", - "unclaimed": "", - "image": "", - "reviews": "", - "onlyNewOrgs": "", - "footer": "" + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "title": "I encountered a bug and outage that caused my app to lose its value", + "message": "The platform experienced significant downtime which affected my users.", + "fromPlanId": "pro", + "toPlanId": "free", + "teamId": "5e5ea5c16897e", + "userId": "5e5ea5c16897e", + "version": "1.8.0" } }, - "program": { - "description": "Program", + "estimation": { + "description": "Estimation", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Program ID", - "x-example": "" - }, - "title": { - "type": "string", - "description": "Program title", - "x-example": "" + "amount": { + "type": "number", + "description": "Total amount", + "x-example": 50, + "format": "double" }, - "description": { - "type": "string", - "description": "Program description", - "x-example": "" + "grossAmount": { + "type": "number", + "description": "Gross payable amount", + "x-example": 50, + "format": "double" }, - "tag": { - "type": "string", - "description": "Program tag for highlighting on console", - "x-example": null + "discount": { + "type": "number", + "description": "Discount amount", + "x-example": 50, + "format": "double" }, - "icon": { - "type": "string", - "description": "Program icon for highlighting on console", - "x-example": null + "credits": { + "type": "number", + "description": "Credits amount", + "x-example": 50, + "format": "double" }, - "url": { - "type": "string", - "description": "URL for more information on this program", - "x-example": "" + "items": { + "type": "array", + "description": "Estimation items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "x-example": [] }, - "active": { - "type": "boolean", - "description": "Whether this program is active", - "x-example": false + "discounts": { + "type": "array", + "description": "Estimation discount items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "x-example": [] }, - "external": { - "type": "boolean", - "description": "Whether this program is external", - "x-example": false + "trialDays": { + "type": "integer", + "description": "Trial days", + "x-example": 14, + "format": "int32" }, - "billingPlanId": { + "trialEndDate": { "type": "string", - "description": "Billing plan ID that this is program is associated with.", - "x-example": "" + "description": "Trial end date", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true } }, "required": [ - "$id", - "title", - "description", - "tag", - "icon", - "url", - "active", - "external", - "billingPlanId" + "amount", + "grossAmount", + "discount", + "credits", + "items", + "discounts", + "trialDays" ], "example": { - "$id": "", - "title": "", - "description": "", - "tag": null, - "icon": null, - "url": "", - "active": false, - "external": false, - "billingPlanId": "" + "amount": 50, + "grossAmount": 50, + "discount": 50, + "credits": 50, + "items": [], + "discounts": [], + "trialDays": 14, + "trialEndDate": "2020-10-15T06:38:00.000+00:00" } }, - "coupon": { - "description": "Coupon", + "estimationDeleteOrganization": { + "description": "DeleteOrganization", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "coupon ID", - "x-example": "NEWBONUS" - }, - "code": { + "unpaidInvoices": { + "type": "array", + "description": "List of unpaid invoices", + "items": { + "$ref": "#\/components\/schemas\/invoice" + }, + "x-example": [] + } + }, + "required": [ + "unpaidInvoices" + ], + "example": { + "unpaidInvoices": [] + } + }, + "estimation_item": { + "description": "Item", + "type": "object", + "properties": { + "label": { "type": "string", - "description": "coupon ID", - "x-example": "NEWBONUS" + "description": "Label", + "x-example": "Plan name" }, - "credits": { + "value": { "type": "number", - "description": "Provided credit amount", + "description": "Gross payable amount", "x-example": 50, "format": "double" - }, - "expiration": { - "type": "string", - "description": "Coupon expiration time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "validity": { - "type": "integer", - "description": "Credit validity in days.", - "x-example": 180, - "format": "int32" - }, - "campaign": { - "type": "string", - "description": "Campaign the coupon is associated with`.", - "x-example": "AppwriteHeroes" - }, - "status": { - "type": "string", - "description": "Status of the coupon. Can be one of `disabled`, `active` or `expired`.", - "x-example": "disabled" - }, - "onlyNewOrgs": { - "type": "boolean", - "description": "If the coupon is only valid for new organizations or not.", - "x-example": true } }, "required": [ - "$id", - "code", - "credits", - "expiration", - "validity", - "campaign", - "status", - "onlyNewOrgs" + "label", + "value" ], "example": { - "$id": "NEWBONUS", - "code": "NEWBONUS", - "credits": 50, - "expiration": "2020-10-15T06:38:00.000+00:00", - "validity": 180, - "campaign": "AppwriteHeroes", - "status": "disabled", - "onlyNewOrgs": true + "label": "Plan name", + "value": 50 } }, - "credit": { - "description": "Credit", + "estimationPlanChange": { + "description": "EstimationPlanChange", "type": "object", "properties": { - "$id": { + "currentBillingPlanId": { "type": "string", - "description": "Credit ID.", - "x-example": "5e5ea5c16897e" + "description": "Current billing plan ID", + "x-example": "tier-2" }, - "$createdAt": { + "targetBillingPlanId": { "type": "string", - "description": "Credit creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Target billing plan ID", + "x-example": "tier-0" }, - "$updatedAt": { + "direction": { "type": "string", - "description": "Credit update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Direction of plan change: upgrade, downgrade, or same", + "x-example": "downgrade" }, - "$permissions": { - "type": "array", - "description": "Credit permissions. [Learn more about permissions](\/docs\/permissions).", + "estimation": { + "type": "object", + "description": "Cost estimation details", + "x-example": null, "items": { - "type": "string" - }, - "x-example": [ - "read(\"any\")" - ] - }, - "couponId": { - "type": "string", - "description": "coupon ID", - "x-example": "NEWBONUS" + "$ref": "#\/components\/schemas\/planChangeEstimationDetails" + } }, - "userId": { - "type": "string", - "description": "ID of the User.", - "x-example": "5e5ea5c16897e" + "limits": { + "type": "object", + "description": "Plan limits and compliance information", + "x-example": null, + "items": { + "$ref": "#\/components\/schemas\/planChangeLimits" + } + } + }, + "required": [ + "currentBillingPlanId", + "targetBillingPlanId", + "direction", + "estimation", + "limits" + ], + "example": { + "currentBillingPlanId": "tier-2", + "targetBillingPlanId": "tier-0", + "direction": "downgrade", + "estimation": null, + "limits": null + } + }, + "estimationUpdatePlan": { + "description": "UpdatePlan", + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Total amount", + "x-example": 50, + "format": "double" }, - "teamId": { - "type": "string", - "description": "ID of the Team.", - "x-example": "5e5ea5c16897e" + "grossAmount": { + "type": "number", + "description": "Gross payable amount", + "x-example": 50, + "format": "double" }, - "credits": { + "discount": { "type": "number", - "description": "Provided credit amount", + "description": "Discount amount", "x-example": 50, "format": "double" }, - "total": { + "credits": { "type": "number", - "description": "Provided credit amount", + "description": "Credits amount", "x-example": 50, "format": "double" }, - "expiration": { - "type": "string", - "description": "Credit expiration time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "items": { + "type": "array", + "description": "Estimation items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "x-example": [] + }, + "discounts": { + "type": "array", + "description": "Estimation discount items", + "items": { + "$ref": "#\/components\/schemas\/estimation_item" + }, + "x-example": [] + }, + "trialDays": { + "type": "integer", + "description": "Trial days", + "x-example": 14, + "format": "int32" }, - "status": { + "trialEndDate": { "type": "string", - "description": "Status of the credit. Can be one of `disabled`, `active` or `expired`.", - "x-example": "disabled" + "description": "Trial end date", + "x-example": "2020-10-15T06:38:00.000+00:00", + "nullable": true + }, + "organizationCredits": { + "type": "number", + "description": "Organization's existing credits", + "x-example": 0, + "format": "double" } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "couponId", - "userId", - "teamId", + "amount", + "grossAmount", + "discount", "credits", - "total", - "expiration", - "status" + "items", + "discounts", + "trialDays", + "organizationCredits" ], "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "couponId": "NEWBONUS", - "userId": "5e5ea5c16897e", - "teamId": "5e5ea5c16897e", + "amount": 50, + "grossAmount": 50, + "discount": 50, "credits": 50, - "total": 50, - "expiration": "2020-10-15T06:38:00.000+00:00", - "status": "disabled" + "items": [], + "discounts": [], + "trialDays": 14, + "trialEndDate": "2020-10-15T06:38:00.000+00:00", + "organizationCredits": 0 } }, - "creditAvailable": { - "description": "CreditAvailable", + "dedicatedDatabaseExtensions": { + "description": "Extensions", "type": "object", "properties": { + "installed": { + "type": "array", + "description": "List of installed extensions.", + "items": { + "type": "string" + }, + "x-example": [ + "pgvector", + "uuid-ossp" + ] + }, "available": { - "type": "integer", - "description": "Total available credits for the organization.", - "x-example": 100, - "format": "int32" + "type": "array", + "description": "List of available extensions that can be installed.", + "items": { + "type": "string" + }, + "x-example": [ + "postgis", + "pg_trgm" + ] } }, "required": [ + "installed", "available" ], "example": { - "available": 100 + "installed": [ + "pgvector", + "uuid-ossp" + ], + "available": [ + "postgis", + "pg_trgm" + ] } }, - "creditList": { - "description": "CreditList", + "dedicatedDatabaseHAReplica": { + "description": "HAReplica", "type": "object", "properties": { - "credits": { - "type": "array", - "description": "Credits", - "items": { - "$ref": "#\/components\/schemas\/credit" - }, - "x-example": 5 + "$id": { + "type": "string", + "description": "Replica identifier.", + "x-example": "replica-1" }, - "total": { - "type": "integer", - "description": "Total number of credits", - "x-example": 5, - "format": "int32" + "role": { + "type": "string", + "description": "Replica role. Possible values: primary (accepts reads and writes), replica (read-only follower).", + "x-example": "replica" }, - "available": { + "status": { + "type": "string", + "description": "Replica health status. Possible values: healthy (fully synced), degraded (lagging behind primary), unhealthy (replication broken or unreachable).", + "x-example": "healthy" + }, + "lagSeconds": { "type": "number", - "description": "Total available credit balance in USD", - "x-example": 5, + "description": "Replication lag in seconds.", + "x-example": 0.5, "format": "double" } }, "required": [ - "credits", - "total", - "available" + "$id", + "role", + "status", + "lagSeconds" ], "example": { - "credits": 5, - "total": 5, - "available": 5 + "$id": "replica-1", + "role": "replica", + "status": "healthy", + "lagSeconds": 0.5 } }, - "downgradeFeedback": { - "description": "Downgrade Feedback", + "dedicatedDatabaseHAStatus": { + "description": "HAStatus", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Feedback ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Feedback creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Feedback update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "title": { - "type": "string", - "description": "Feedback reason", - "x-example": "I encountered a bug and outage that caused my app to lose its value" - }, - "message": { - "type": "string", - "description": "Feedback message", - "x-example": "The platform experienced significant downtime which affected my users." - }, - "fromPlanId": { - "type": "string", - "description": "Plan ID downgrading from", - "x-example": "pro" - }, - "toPlanId": { - "type": "string", - "description": "Plan ID downgrading to", - "x-example": "free" + "enabled": { + "type": "boolean", + "description": "Whether high availability is enabled.", + "x-example": true }, - "teamId": { - "type": "string", - "description": "Organization ID", - "x-example": "5e5ea5c16897e" + "replicaCount": { + "type": "integer", + "description": "Number of configured replicas.", + "x-example": 2, + "format": "int32" }, - "userId": { + "syncMode": { "type": "string", - "description": "User ID who submitted feedback", - "x-example": "5e5ea5c16897e" + "description": "Replication sync mode. Possible values: async (asynchronous, fastest), sync (synchronous, strong consistency), quorum (quorum-based, majority of replicas must confirm).", + "x-example": "async" }, - "version": { - "type": "string", - "description": "Console version", - "x-example": "1.8.0" + "replicas": { + "type": "array", + "description": "List of replica statuses.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseHAReplica" + }, + "x-example": [] } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "title", - "message", - "fromPlanId", - "toPlanId", - "teamId", - "userId", - "version" + "enabled", + "replicaCount", + "syncMode", + "replicas" ], "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "title": "I encountered a bug and outage that caused my app to lose its value", - "message": "The platform experienced significant downtime which affected my users.", - "fromPlanId": "pro", - "toPlanId": "free", - "teamId": "5e5ea5c16897e", - "userId": "5e5ea5c16897e", - "version": "1.8.0" + "enabled": true, + "replicaCount": 2, + "syncMode": "async", + "replicas": [] } }, "invoice": { @@ -97486,7 +102772,8 @@ "x-example": "", "items": { "$ref": "#\/components\/schemas\/billingLimits" - } + }, + "nullable": true }, "billingPlanDowngrade": { "type": "string", @@ -97547,7 +102834,6 @@ "programManagerCalendar", "programDiscordChannelName", "programDiscordChannelUrl", - "billingLimits", "billingPlanDowngrade", "billingTaxId", "markedForDeletion", @@ -97747,1371 +103033,1237 @@ "expired": { "type": "boolean", "description": "True when payment method has expired.", - "x-example": false - }, - "failed": { - "type": "boolean", - "description": "True when payment method has failed to process multiple times.", - "x-example": false - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "providerMethodId", - "clientSecret", - "providerUserId", - "userId", - "expiryMonth", - "expiryYear", - "last4", - "brand", - "name", - "mandateId", - "country", - "state", - "lastError", - "default", - "expired", - "failed" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "providerMethodId": "abdk3ed3sdkfj", - "clientSecret": "seti_ddfe", - "providerUserId": "abdk3ed3sdkfj", - "userId": "5e5ea5c16897e", - "expiryMonth": 2, - "expiryYear": 2024, - "last4": "4242", - "brand": "visa", - "name": "John Doe", - "mandateId": "yxc", - "country": "de", - "state": "", - "lastError": "Your card has insufficient funds.", - "default": false, - "expired": false, - "failed": false - } - }, - "backupPolicy": { - "description": "backup", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Backup policy ID.", - "x-example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Backup policy name.", - "x-example": "Hourly backups" - }, - "$createdAt": { - "type": "string", - "description": "Policy creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Policy update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "services": { - "type": "array", - "description": "The services that are backed up by this policy.", - "items": { - "type": "string" - }, - "x-example": "['databases', 'storage']" - }, - "resources": { - "type": "array", - "description": "The resources that are backed up by this policy.", - "items": { - "type": "string" - }, - "x-example": "['databases', 'collections', 'attributes', 'indexes']" - }, - "resourceId": { - "type": "string", - "description": "The resource ID to backup. Set only if this policy should backup a single resource.", - "x-example": "DB1", - "nullable": true - }, - "resourceType": { - "type": "string", - "description": "The resource type to backup. Set only if this policy should backup a single resource.", - "x-example": "database", - "nullable": true - }, - "retention": { - "type": "integer", - "description": "How many days to keep the backup before it will be automatically deleted.", - "x-example": 7, - "format": "int32" - }, - "schedule": { - "type": "string", - "description": "Policy backup schedule in CRON format.", - "x-example": "0 * * * *" - }, - "enabled": { - "type": "boolean", - "description": "Is this policy enabled.", - "x-example": true - } - }, - "required": [ - "$id", - "name", - "$createdAt", - "$updatedAt", - "services", - "resources", - "retention", - "schedule", - "enabled" - ], - "example": { - "$id": "5e5ea5c16897e", - "name": "Hourly backups", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "services": "['databases', 'storage']", - "resources": "['databases', 'collections', 'attributes', 'indexes']", - "resourceId": "DB1", - "resourceType": "database", - "retention": 7, - "schedule": "0 * * * *", - "enabled": true - } - }, - "consoleRegion": { - "description": "Region", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Region ID", - "x-example": "eu-fr" - }, - "name": { - "type": "string", - "description": "Region name", - "x-example": "EU (Frankfurt)" - }, - "available": { - "type": "boolean", - "description": "Does the organization have access to this region.", - "x-example": false - }, - "disabled": { - "type": "boolean", - "description": "Does the backend support this region.", - "x-example": false - }, - "default": { - "type": "boolean", - "description": "Is this the region default.", - "x-example": true - }, - "flag": { - "type": "string", - "description": "Region flag code.", - "x-example": "fr" - } - }, - "required": [ - "$id", - "name", - "available", - "disabled", - "default", - "flag" - ], - "example": { - "$id": "eu-fr", - "name": "EU (Frankfurt)", - "available": false, - "disabled": false, - "default": true, - "flag": "fr" - } - }, - "backupRestoration": { - "description": "Restoration", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Restoration ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Restoration creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Restoration update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "archiveId": { - "type": "string", - "description": "Backup archive ID.", - "x-example": "did8jx6ws45jana098ab7" - }, - "policyId": { - "type": "string", - "description": "Backup policy ID.", - "x-example": "did8jx6ws45jana098ab7" - }, - "status": { - "type": "string", - "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", - "x-example": "completed" - }, - "startedAt": { - "type": "string", - "description": "The backup start time.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "migrationId": { - "type": "string", - "description": "Migration ID.", - "x-example": "did8jx6ws45jana098ab7" - }, - "services": { - "type": "array", - "description": "The services that are backed up by this policy.", - "items": { - "type": "string" - }, - "x-example": "['databases', 'storage']" - }, - "resources": { - "type": "array", - "description": "The resources that are backed up by this policy.", - "items": { - "type": "string" - }, - "x-example": "['databases', 'collections', 'attributes', 'indexes']" - }, - "options": { - "type": "string", - "description": "Optional data in key-value object. ", - "x-example": "{databases.database[{oldId, newId, newName}]}" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "archiveId", - "policyId", - "status", - "startedAt", - "migrationId", - "services", - "resources", - "options" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "archiveId": "did8jx6ws45jana098ab7", - "policyId": "did8jx6ws45jana098ab7", - "status": "completed", - "startedAt": "2020-10-15T06:38:00.000+00:00", - "migrationId": "did8jx6ws45jana098ab7", - "services": "['databases', 'storage']", - "resources": "['databases', 'collections', 'attributes', 'indexes']", - "options": "{databases.database[{oldId, newId, newName}]}" - } - }, - "review": { - "description": "Review", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of user", - "x-example": "" - }, - "image": { - "type": "string", - "description": "Reviewer image", - "x-example": "" - }, - "description": { - "type": "string", - "description": "Reviewer description", - "x-example": "" - }, - "review": { - "type": "string", - "description": "Review", - "x-example": "" + "x-example": false + }, + "failed": { + "type": "boolean", + "description": "True when payment method has failed to process multiple times.", + "x-example": false } }, "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "providerMethodId", + "clientSecret", + "providerUserId", + "userId", + "expiryMonth", + "expiryYear", + "last4", + "brand", "name", - "image", - "description", - "review" + "mandateId", + "country", + "state", + "lastError", + "default", + "expired", + "failed" ], "example": { - "name": "", - "image": "", - "description": "", - "review": "" + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "providerMethodId": "abdk3ed3sdkfj", + "clientSecret": "seti_ddfe", + "providerUserId": "abdk3ed3sdkfj", + "userId": "5e5ea5c16897e", + "expiryMonth": 2, + "expiryYear": 2024, + "last4": "4242", + "brand": "visa", + "name": "John Doe", + "mandateId": "yxc", + "country": "de", + "state": "", + "lastError": "Your card has insufficient funds.", + "default": false, + "expired": false, + "failed": false } }, - "roles": { - "description": "Roles", + "dedicatedDatabasePerformanceInsights": { + "description": "PerformanceInsights", "type": "object", "properties": { - "scopes": { + "topQueries": { "type": "array", - "description": "Array of scopes accessible to current user.", + "description": "Top queries by total execution time.", "items": { - "type": "string" + "$ref": "#\/components\/schemas\/dedicatedDatabasePerformanceInsightsQuery" }, - "x-example": "users.read" + "x-example": [] }, - "roles": { + "waitEvents": { "type": "array", - "description": "Array of roles assigned to current user.", + "description": "Active wait events.", "items": { - "type": "string" + "$ref": "#\/components\/schemas\/dedicatedDatabasePerformanceInsightsWaitEvent" }, - "x-example": "developer" + "x-example": [] + }, + "totalCalls": { + "type": "integer", + "description": "Total number of query calls.", + "x-example": 150000, + "format": "int32" + }, + "totalTimeMs": { + "type": "number", + "description": "Total query execution time in milliseconds.", + "x-example": 85432.12, + "format": "double" + }, + "avgTimeMs": { + "type": "number", + "description": "Average query execution time in milliseconds.", + "x-example": 0.57, + "format": "double" } }, "required": [ - "scopes", - "roles" + "topQueries", + "waitEvents", + "totalCalls", + "totalTimeMs", + "avgTimeMs" ], "example": { - "scopes": "users.read", - "roles": "developer" + "topQueries": [], + "waitEvents": [], + "totalCalls": 150000, + "totalTimeMs": 85432.12, + "avgTimeMs": 0.57 } }, - "usageEvent": { - "description": "usageEvent", + "dedicatedDatabasePerformanceInsightsQuery": { + "description": "PerformanceInsightsQuery", "type": "object", "properties": { - "metric": { + "query": { "type": "string", - "description": "The metric key.", - "x-example": "bandwidth" + "description": "The SQL query text.", + "x-example": "SELECT * FROM users WHERE email = $1" }, - "value": { + "calls": { "type": "integer", - "description": "The metric value.", - "x-example": 5000, + "description": "Number of times this query has been executed.", + "x-example": 42, "format": "int32" }, - "time": { - "type": "string", - "description": "The event timestamp.", - "x-example": "2026-04-09T12:00:00.000+00:00" - }, - "path": { - "type": "string", - "description": "The API endpoint path.", - "x-example": "\/v1\/storage\/files" - }, - "method": { - "type": "string", - "description": "The HTTP method.", - "x-example": "POST" - }, - "status": { - "type": "string", - "description": "HTTP status code. Stored as string to preserve unset state (empty string = not available).", - "x-example": "201" - }, - "resourceType": { - "type": "string", - "description": "The resource type.", - "x-example": "bucket" - }, - "resourceId": { - "type": "string", - "description": "The resource ID.", - "x-example": "abc123" + "totalTimeMs": { + "type": "number", + "description": "Total execution time in milliseconds.", + "x-example": 1523.4, + "format": "double" }, - "countryCode": { - "type": "string", - "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format.", - "x-example": "US" + "meanTimeMs": { + "type": "number", + "description": "Mean execution time in milliseconds.", + "x-example": 36.27, + "format": "double" }, - "userAgent": { - "type": "string", - "description": "The user agent string.", - "x-example": "AppwriteSDK\/1.0" + "rows": { + "type": "integer", + "description": "Total rows returned or affected.", + "x-example": 1250, + "format": "int32" } }, "required": [ - "metric", - "value", - "time", - "path", - "method", - "status", - "resourceType", - "resourceId", - "countryCode", - "userAgent" + "query", + "calls", + "totalTimeMs", + "meanTimeMs", + "rows" ], "example": { - "metric": "bandwidth", - "value": 5000, - "time": "2026-04-09T12:00:00.000+00:00", - "path": "\/v1\/storage\/files", - "method": "POST", - "status": "201", - "resourceType": "bucket", - "resourceId": "abc123", - "countryCode": "US", - "userAgent": "AppwriteSDK\/1.0" + "query": "SELECT * FROM users WHERE email = $1", + "calls": 42, + "totalTimeMs": 1523.4, + "meanTimeMs": 36.27, + "rows": 1250 } }, - "usageEventList": { - "description": "Usage events list", + "dedicatedDatabasePerformanceInsightsWaitEvent": { + "description": "PerformanceInsightsWaitEvent", "type": "object", "properties": { - "total": { + "event": { + "type": "string", + "description": "Wait event name.", + "x-example": "DataFileRead" + }, + "type": { + "type": "string", + "description": "Wait event type or category.", + "x-example": "IO" + }, + "count": { "type": "integer", - "description": "Total number of events that matched your query.", - "x-example": 5, + "description": "Number of occurrences.", + "x-example": 15, "format": "int32" }, - "events": { - "type": "array", - "description": "List of events.", - "items": { - "$ref": "#\/components\/schemas\/usageEvent" - }, - "x-example": "" + "totalWaitMs": { + "type": "number", + "description": "Total wait time in milliseconds.", + "x-example": 234.5, + "format": "double" } }, "required": [ - "total", - "events" + "event", + "type", + "count", + "totalWaitMs" ], "example": { - "total": 5, - "events": "" + "event": "DataFileRead", + "type": "IO", + "count": 15, + "totalWaitMs": 234.5 } }, - "usageGauge": { - "description": "usageGauge", + "dedicatedDatabasePITRWindows": { + "description": "PITRWindows", "type": "object", "properties": { - "metric": { + "earliest": { "type": "string", - "description": "The metric key.", - "x-example": "users" - }, - "value": { - "type": "integer", - "description": "The current snapshot value.", - "x-example": 1500, - "format": "int32" + "description": "Earliest available recovery point.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "time": { + "latest": { "type": "string", - "description": "The snapshot timestamp.", - "x-example": "2026-04-09T12:00:00.000+00:00" + "description": "Latest available recovery point.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ - "metric", - "value", - "time" + "earliest", + "latest" ], "example": { - "metric": "users", - "value": 1500, - "time": "2026-04-09T12:00:00.000+00:00" + "earliest": "2020-10-15T06:38:00.000+00:00", + "latest": "2020-10-15T06:38:00.000+00:00" } }, - "usageGaugeList": { - "description": "Usage gauges list", + "planChangeEstimationDetails": { + "description": "PlanChangeEstimationDetails", "type": "object", "properties": { - "total": { - "type": "integer", - "description": "Total number of gauges that matched your query.", + "currency": { + "type": "string", + "description": "Currency code", + "x-example": "USD" + }, + "grossAmount": { + "type": "number", + "description": "Gross amount after all discounts and credits", + "x-example": 15, + "format": "double" + }, + "credits": { + "type": "number", + "description": "Credits applied from coupon", + "x-example": 0, + "format": "double" + }, + "organizationCredits": { + "type": "number", + "description": "Organization's existing credits applied", "x-example": 5, - "format": "int32" + "format": "double" }, - "gauges": { + "discount": { + "type": "number", + "description": "Discount amount from prorated invoices", + "x-example": 0, + "format": "double" + }, + "amount": { + "type": "number", + "description": "Total amount before discounts and credits", + "x-example": 20, + "format": "double" + }, + "nextInvoiceDate": { + "type": "string", + "description": "Next invoice date", + "x-example": "2025-12-01T00:00:00.000Z" + }, + "items": { "type": "array", - "description": "List of gauges.", + "description": "Line items breakdown", "items": { - "$ref": "#\/components\/schemas\/usageGauge" + "type": "object" }, - "x-example": "" + "x-example": [ + { + "label": "Starter plan", + "value": 0 + }, + { + "label": "Additional seats", + "value": 10 + } + ] + }, + "discounts": { + "type": "array", + "description": "Applied discounts breakdown", + "items": { + "type": "object" + }, + "x-example": [ + { + "label": "Organization credits", + "value": 5 + } + ] } }, "required": [ - "total", - "gauges" + "currency", + "grossAmount", + "credits", + "organizationCredits", + "discount", + "amount", + "nextInvoiceDate", + "items", + "discounts" ], "example": { - "total": 5, - "gauges": "" + "currency": "USD", + "grossAmount": 15, + "credits": 0, + "organizationCredits": 5, + "discount": 0, + "amount": 20, + "nextInvoiceDate": "2025-12-01T00:00:00.000Z", + "items": [ + { + "label": "Starter plan", + "value": 0 + }, + { + "label": "Additional seats", + "value": 10 + } + ], + "discounts": [ + { + "label": "Organization credits", + "value": 5 + } + ] } }, - "usageOrganization": { - "description": "UsageOrganization", + "planChangeLimits": { + "description": "PlanChangeLimits", "type": "object", "properties": { - "bandwidth": { - "type": "array", - "description": "Aggregated stats for number of requests.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "users": { - "type": "array", - "description": "Aggregated stats for consumed bandwidth.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "executions": { - "type": "array", - "description": "Aggregated stats for function executions.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "databasesReads": { - "type": "array", - "description": "Aggregated stats for database reads.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "databasesWrites": { - "type": "array", - "description": "Aggregated stats for database writes.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "imageTransformations": { - "type": "array", - "description": "Aggregated stats for file transformations.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "totalProjects": { + "type": "integer", + "description": "Total number of projects in the organization", + "x-example": 5, + "format": "int32" }, - "imageTransformationsTotal": { + "nonCompliantProjects": { "type": "integer", - "description": "Aggregated stats for total file transformations.", - "x-example": 0, + "description": "Number of projects exceeding target plan limits", + "x-example": 2, "format": "int32" }, - "screenshotsGenerated": { + "canChangePlan": { + "type": "boolean", + "description": "Whether the plan change is allowed", + "x-example": false + }, + "projects": { "type": "array", - "description": "Aggregated stats for file transformations.", + "description": "Project compliance details", "items": { - "$ref": "#\/components\/schemas\/metric" + "$ref": "#\/components\/schemas\/planChangeProjectCompliance" }, "x-example": [] }, - "screenshotsGeneratedTotal": { - "type": "integer", - "description": "Aggregated stats for total file transformations.", - "x-example": 0, - "format": "int32" - }, - "imagineCredits": { + "unsupportedAddons": { "type": "array", - "description": "Aggregated stats for imagine credits.", + "description": "Active addon keys that the target plan does not support. When non-empty, `canChangePlan` is false.", "items": { - "$ref": "#\/components\/schemas\/metric" + "type": "string" }, - "x-example": [] - }, - "imagineCreditsTotal": { - "type": "integer", - "description": "Aggregated stats for total imagine credits.", - "x-example": 0, - "format": "int32" - }, - "usersTotal": { - "type": "integer", - "description": "Aggregated stats for total users.", - "x-example": 0, - "format": "int32" - }, - "executionsTotal": { - "type": "integer", - "description": "Aggregated stats for total executions.", - "x-example": 0, - "format": "int32" - }, - "executionsMBSecondsTotal": { - "type": "integer", - "description": "Aggregated stats for function executions in mb seconds.", - "x-example": 0, - "format": "int32" - }, - "buildsMBSecondsTotal": { - "type": "integer", - "description": "Aggregated stats for function builds in mb seconds.", - "x-example": 0, - "format": "int32" - }, - "filesStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total file storage.", - "x-example": 0, - "format": "int32" - }, - "buildsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total builds storage.", - "x-example": 0, - "format": "int32" - }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total deployments storage.", - "x-example": 0, - "format": "int32" - }, - "databasesStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total databases storage.", - "x-example": 0, - "format": "int32" - }, - "databasesReadsTotal": { - "type": "integer", - "description": "Aggregated stats for total databases reads.", - "x-example": 0, - "format": "int32" - }, - "databasesWritesTotal": { - "type": "integer", - "description": "Aggregated stats for total databases writes.", - "x-example": 0, - "format": "int32" - }, - "backupsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total backups storage.", - "x-example": 0, - "format": "int32" - }, - "storageTotal": { - "type": "integer", - "description": "Aggregated stats for total storage.", - "x-example": 0, - "format": "int32" - }, - "authPhoneTotal": { - "type": "integer", - "description": "Aggregated stats for total auth phone.", - "x-example": 0, - "format": "int32" + "x-example": [ + "baa" + ] + } + }, + "required": [ + "totalProjects", + "nonCompliantProjects", + "canChangePlan", + "projects", + "unsupportedAddons" + ], + "example": { + "totalProjects": 5, + "nonCompliantProjects": 2, + "canChangePlan": false, + "projects": [], + "unsupportedAddons": [ + "baa" + ] + } + }, + "planChangeProjectCompliance": { + "description": "PlanChangeProjectCompliance", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID", + "x-example": "proj_a" }, - "authPhoneEstimate": { - "type": "integer", - "description": "Aggregated stats for total auth phone estimation.", - "x-example": 0, - "format": "int32" + "name": { + "type": "string", + "description": "Project name", + "x-example": "Marketing Site" }, - "projects": { - "type": "array", - "description": "Aggregated stats for each projects.", - "items": { - "$ref": "#\/components\/schemas\/usageOrganizationProject" - }, - "x-example": [] + "isCompliant": { + "type": "boolean", + "description": "Whether the project complies with target plan limits", + "x-example": false }, - "realtimeConnections": { + "resources": { "type": "array", - "description": "Aggregated stats for realtime connections.", + "description": "Resource compliance details", "items": { - "$ref": "#\/components\/schemas\/metric" + "$ref": "#\/components\/schemas\/planChangeResourceCompliance" }, "x-example": [] }, - "realtimeConnectionsTotal": { + "error": { + "type": "string", + "description": "Failure reason when compliance could not be evaluated. Present only when the project DB or Regions API was unreachable; in that case `isCompliant` is false (fail closed) and `resources` is empty.", + "x-example": "Failed to get project compliance from Regions API. Status: 500", + "nullable": true + } + }, + "required": [ + "$id", + "name", + "isCompliant", + "resources" + ], + "example": { + "$id": "proj_a", + "name": "Marketing Site", + "isCompliant": false, + "resources": [], + "error": "Failed to get project compliance from Regions API. Status: 500" + } + }, + "planChangeResourceCompliance": { + "description": "PlanChangeResourceCompliance", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Resource type", + "x-example": "databases" + }, + "currentUsage": { "type": "integer", - "description": "Aggregated stats for total realtime connections.", - "x-example": 0, + "description": "Current usage count", + "x-example": 3, "format": "int32" }, - "realtimeMessages": { - "type": "array", - "description": "Aggregated stats for realtime messages.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "realtimeMessagesTotal": { + "limit": { "type": "integer", - "description": "Aggregated stats for total realtime messages.", - "x-example": 0, + "description": "Allowed limit in target plan", + "x-example": 1, "format": "int32" }, - "realtimeBandwidth": { - "type": "array", - "description": "Aggregated stats for realtime bandwidth.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "status": { + "type": "string", + "description": "Compliance status", + "x-example": "over_limit" }, - "realtimeBandwidthTotal": { + "excess": { "type": "integer", - "description": "Aggregated stats for total realtime bandwidth.", - "x-example": 0, + "description": "Number of resources exceeding the limit", + "x-example": 2, "format": "int32" + }, + "resolutionHint": { + "type": "string", + "description": "Suggestion for resolving the compliance issue", + "x-example": "Delete or migrate 2 databases." } }, "required": [ - "bandwidth", - "users", - "executions", - "databasesReads", - "databasesWrites", - "imageTransformations", - "imageTransformationsTotal", - "screenshotsGenerated", - "screenshotsGeneratedTotal", - "imagineCredits", - "imagineCreditsTotal", - "usersTotal", - "executionsTotal", - "executionsMBSecondsTotal", - "buildsMBSecondsTotal", - "filesStorageTotal", - "buildsStorageTotal", - "deploymentsStorageTotal", - "databasesStorageTotal", - "databasesReadsTotal", - "databasesWritesTotal", - "backupsStorageTotal", - "storageTotal", - "authPhoneTotal", - "authPhoneEstimate", - "projects", - "realtimeConnections", - "realtimeConnectionsTotal", - "realtimeMessages", - "realtimeMessagesTotal", - "realtimeBandwidth", - "realtimeBandwidthTotal" + "type", + "currentUsage", + "limit", + "status", + "excess", + "resolutionHint" ], "example": { - "bandwidth": [], - "users": [], - "executions": [], - "databasesReads": [], - "databasesWrites": [], - "imageTransformations": [], - "imageTransformationsTotal": 0, - "screenshotsGenerated": [], - "screenshotsGeneratedTotal": 0, - "imagineCredits": [], - "imagineCreditsTotal": 0, - "usersTotal": 0, - "executionsTotal": 0, - "executionsMBSecondsTotal": 0, - "buildsMBSecondsTotal": 0, - "filesStorageTotal": 0, - "buildsStorageTotal": 0, - "deploymentsStorageTotal": 0, - "databasesStorageTotal": 0, - "databasesReadsTotal": 0, - "databasesWritesTotal": 0, - "backupsStorageTotal": 0, - "storageTotal": 0, - "authPhoneTotal": 0, - "authPhoneEstimate": 0, - "projects": [], - "realtimeConnections": [], - "realtimeConnectionsTotal": 0, - "realtimeMessages": [], - "realtimeMessagesTotal": 0, - "realtimeBandwidth": [], - "realtimeBandwidthTotal": 0 + "type": "databases", + "currentUsage": 3, + "limit": 1, + "status": "over_limit", + "excess": 2, + "resolutionHint": "Delete or migrate 2 databases." } }, - "usageOrganizationProject": { - "description": "UsageOrganizationProject", + "backupPolicy": { + "description": "backup", "type": "object", "properties": { - "projectId": { + "$id": { "type": "string", - "description": "projectId", + "description": "Backup policy ID.", "x-example": "5e5ea5c16897e" }, - "bandwidth": { - "type": "array", - "description": "Aggregated stats for number of requests.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "name": { + "type": "string", + "description": "Backup policy name.", + "x-example": "Hourly backups" }, - "users": { - "type": "array", - "description": "Aggregated stats for consumed bandwidth.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] + "$createdAt": { + "type": "string", + "description": "Policy creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "executions": { - "type": "integer", - "description": "Aggregated stats for function executions.", - "x-example": [], - "format": "int32" + "$updatedAt": { + "type": "string", + "description": "Policy update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "databasesReads": { + "services": { "type": "array", - "description": "Aggregated stats for database reads.", + "description": "The services that are backed up by this policy.", "items": { - "$ref": "#\/components\/schemas\/metric" + "type": "string" }, - "x-example": [] + "x-example": "['databases', 'storage']" }, - "databasesWrites": { + "resources": { "type": "array", - "description": "Aggregated stats for database writes.", + "description": "The resources that are backed up by this policy.", "items": { - "$ref": "#\/components\/schemas\/metric" + "type": "string" }, - "x-example": [] + "x-example": "['databases', 'collections', 'attributes', 'indexes']" }, - "executionsMBSeconds": { - "type": "integer", - "description": "Aggregated stats for function executions in mb seconds.", - "x-example": 0, - "format": "int32" + "resourceId": { + "type": "string", + "description": "The resource ID to backup. Set only if this policy should backup a single resource.", + "x-example": "DB1", + "nullable": true }, - "buildsMBSeconds": { - "type": "integer", - "description": "Aggregated stats for function builds in mb seconds.", - "x-example": 0, - "format": "int32" + "resourceType": { + "type": "string", + "description": "The resource type to backup. Set only if this policy should backup a single resource.", + "x-example": "database", + "nullable": true }, - "storage": { + "retention": { "type": "integer", - "description": "Aggregated stats for number of documents.", - "x-example": [], + "description": "How many days to keep the backup before it will be automatically deleted.", + "x-example": 7, "format": "int32" }, - "authPhoneTotal": { - "type": "integer", - "description": "Aggregated stats for phone authentication.", - "x-example": [], - "format": "int32" + "schedule": { + "type": "string", + "description": "Policy backup schedule in CRON format.", + "x-example": "0 * * * *" }, - "authPhoneEstimate": { - "type": "number", - "description": "Aggregated stats for phone authentication estimated cost.", - "x-example": [], - "format": "double" + "enabled": { + "type": "boolean", + "description": "Is this policy enabled.", + "x-example": true + } + }, + "required": [ + "$id", + "name", + "$createdAt", + "$updatedAt", + "services", + "resources", + "retention", + "schedule", + "enabled" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "Hourly backups", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "resourceId": "DB1", + "resourceType": "database", + "retention": 7, + "schedule": "0 * * * *", + "enabled": true + } + }, + "dedicatedDatabasePooler": { + "description": "PoolerConfig", + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether connection pooling is enabled.", + "x-example": true }, - "databasesReadsTotal": { - "type": "integer", - "description": "Aggregated stats for total databases reads.", - "x-example": 0, - "format": "int32" + "mode": { + "type": "string", + "description": "Connection pool mode. Possible values: transaction (releases connections back to pool after each transaction), session (holds connections for the entire client session).", + "x-example": "transaction" }, - "databasesWritesTotal": { + "maxConnections": { "type": "integer", - "description": "Aggregated stats for total databases writes.", - "x-example": 0, + "description": "Maximum number of pooled connections.", + "x-example": 200, "format": "int32" }, - "imageTransformations": { - "type": "array", - "description": "Aggregated stats for file transformations.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "imageTransformationsTotal": { + "defaultPoolSize": { "type": "integer", - "description": "Aggregated stats for total file transformations.", - "x-example": 0, + "description": "Default pool size per user.", + "x-example": 25, "format": "int32" }, - "screenshotsGenerated": { - "type": "array", - "description": "Aggregated stats for file transformations.", - "items": { - "$ref": "#\/components\/schemas\/metric" - }, - "x-example": [] - }, - "screenshotsGeneratedTotal": { + "port": { "type": "integer", - "description": "Aggregated stats for total file transformations.", - "x-example": 0, + "description": "Pooler listening port.", + "x-example": 6432, "format": "int32" }, - "imagineCredits": { - "type": "integer", - "description": "Aggregated stats for imagine credits.", - "x-example": 0, - "format": "int32" + "readWriteSplitting": { + "type": "boolean", + "description": "Whether SELECTs are routed to HA replicas while writes and locked reads stay on the primary. Active only when HA is enabled.", + "x-example": true }, - "realtimeConnections": { - "type": "integer", - "description": "Aggregated stats for realtime connections.", - "x-example": 0, - "format": "int32" + "poolerCpuRequest": { + "type": "string", + "description": "Effective CPU request applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (5% of DB CPU, floor 100m) unless overridden.", + "x-example": "100m" }, - "realtimeMessages": { - "type": "integer", - "description": "Aggregated stats for realtime messages.", - "x-example": 0, - "format": "int32" + "poolerCpuLimit": { + "type": "string", + "description": "Effective CPU limit applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (10% of DB CPU, floor 200m) unless overridden.", + "x-example": "200m" }, - "realtimeBandwidth": { - "type": "integer", - "description": "Aggregated stats for realtime bandwidth.", - "x-example": 0, - "format": "int32" + "poolerMemoryRequest": { + "type": "string", + "description": "Effective memory request applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (7.5% of DB memory, floor 64Mi) unless overridden.", + "x-example": "64Mi" + }, + "poolerMemoryLimit": { + "type": "string", + "description": "Effective memory limit applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (15% of DB memory, floor 128Mi) unless overridden.", + "x-example": "128Mi" } }, "required": [ - "projectId", - "bandwidth", - "users", - "executions", - "databasesReads", - "databasesWrites", - "executionsMBSeconds", - "buildsMBSeconds", - "storage", - "authPhoneTotal", - "authPhoneEstimate", - "databasesReadsTotal", - "databasesWritesTotal", - "imageTransformations", - "imageTransformationsTotal", - "screenshotsGenerated", - "screenshotsGeneratedTotal", - "imagineCredits", - "realtimeConnections", - "realtimeMessages", - "realtimeBandwidth" + "enabled", + "mode", + "maxConnections", + "defaultPoolSize", + "port", + "readWriteSplitting", + "poolerCpuRequest", + "poolerCpuLimit", + "poolerMemoryRequest", + "poolerMemoryLimit" ], "example": { - "projectId": "5e5ea5c16897e", - "bandwidth": [], - "users": [], - "executions": [], - "databasesReads": [], - "databasesWrites": [], - "executionsMBSeconds": 0, - "buildsMBSeconds": 0, - "storage": [], - "authPhoneTotal": [], - "authPhoneEstimate": [], - "databasesReadsTotal": 0, - "databasesWritesTotal": 0, - "imageTransformations": [], - "imageTransformationsTotal": 0, - "screenshotsGenerated": [], - "screenshotsGeneratedTotal": 0, - "imagineCredits": 0, - "realtimeConnections": 0, - "realtimeMessages": 0, - "realtimeBandwidth": 0 + "enabled": true, + "mode": "transaction", + "maxConnections": 200, + "defaultPoolSize": 25, + "port": 6432, + "readWriteSplitting": true, + "poolerCpuRequest": "100m", + "poolerCpuLimit": "200m", + "poolerMemoryRequest": "64Mi", + "poolerMemoryLimit": "128Mi" } }, - "domain": { - "description": "Domain", + "program": { + "description": "Program", "type": "object", "properties": { "$id": { "type": "string", - "description": "Domain ID.", - "x-example": "5e5ea5c16897e" + "description": "Program ID", + "x-example": "" }, - "$createdAt": { + "title": { "type": "string", - "description": "Domain creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Program title", + "x-example": "" }, - "$updatedAt": { + "description": { "type": "string", - "description": "Domain update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Program description", + "x-example": "" }, - "domain": { + "tag": { "type": "string", - "description": "Domain name.", - "x-example": "example.com" + "description": "Program tag for highlighting on console", + "x-example": null }, - "registrar": { + "icon": { "type": "string", - "description": "Domain registrar (e.g. \"appwrite\" or \"third_party\").", - "x-example": "appwrite" + "description": "Program icon for highlighting on console", + "x-example": null }, - "nameservers": { + "url": { "type": "string", - "description": "Nameservers setting. \"Appwrite\" or empty string.", - "x-example": "Appwrite" + "description": "URL for more information on this program", + "x-example": "" }, - "expire": { + "active": { + "type": "boolean", + "description": "Whether this program is active", + "x-example": false + }, + "external": { + "type": "boolean", + "description": "Whether this program is external", + "x-example": false + }, + "billingPlanId": { + "type": "string", + "description": "Billing plan ID that this is program is associated with.", + "x-example": "" + } + }, + "required": [ + "$id", + "title", + "description", + "tag", + "icon", + "url", + "active", + "external", + "billingPlanId" + ], + "example": { + "$id": "", + "title": "", + "description": "", + "tag": null, + "icon": null, + "url": "", + "active": false, + "external": false, + "billingPlanId": "" + } + }, + "dedicatedDatabaseQueryExplanation": { + "description": "QueryExplanation", + "type": "object", + "properties": { + "plan": { + "type": "array", + "description": "Structured query execution plan. Contents are engine-specific.", + "items": { + "$ref": "#\/components\/schemas\/any" + }, + "x-example": [] + }, + "raw": { + "type": "string", + "description": "Raw EXPLAIN output from the database engine.", + "x-example": "Seq Scan on users (cost=0.00..35.50 rows=2550 width=36)" + } + }, + "required": [ + "plan", + "raw" + ], + "example": { + "plan": [], + "raw": "Seq Scan on users (cost=0.00..35.50 rows=2550 width=36)" + } + }, + "consoleRegion": { + "description": "Region", + "type": "object", + "properties": { + "$id": { "type": "string", - "description": "Domain expiry date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Region ID", + "x-example": "eu-fr" }, - "renewal": { + "name": { "type": "string", - "description": "Domain renewal date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Region name", + "x-example": "EU (Frankfurt)" }, - "autoRenewal": { + "available": { "type": "boolean", - "description": "If set to true, the domain will automatically renew.", - "x-example": true + "description": "Does the organization have access to this region.", + "x-example": false }, - "renewalPrice": { - "type": "integer", - "description": "Renewal price (in cents).", - "x-example": 2599, - "format": "int32" + "disabled": { + "type": "boolean", + "description": "Does the backend support this region.", + "x-example": false }, - "transferStatus": { - "type": "string", - "description": "Transfer status for domains being transferred in.", - "x-example": "pending_registry", - "enum": [ - "transferrable", - "not_transferrable", - "pending_owner", - "pending_admin", - "pending_registry", - "completed", - "cancelled", - "service_unavailable" - ], - "x-enum-name": "DomainTransferStatusEnum" + "default": { + "type": "boolean", + "description": "Is this the region default.", + "x-example": true }, - "teamId": { + "flag": { "type": "string", - "description": "Team ID.", - "x-example": "5e5ea5c16897e" - }, - "dnsRecords": { - "type": "array", - "description": "Dns records", - "items": { - "$ref": "#\/components\/schemas\/dnsRecord" - }, - "x-example": [] + "description": "Region flag code.", + "x-example": "fr" } }, "required": [ "$id", - "$createdAt", - "$updatedAt", - "domain", - "registrar", - "nameservers", - "expire", - "renewal", - "autoRenewal", - "renewalPrice", - "transferStatus", - "teamId", - "dnsRecords" + "name", + "available", + "disabled", + "default", + "flag" ], "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "domain": "example.com", - "registrar": "appwrite", - "nameservers": "Appwrite", - "expire": "2020-10-15T06:38:00.000+00:00", - "renewal": "2020-10-15T06:38:00.000+00:00", - "autoRenewal": true, - "renewalPrice": 2599, - "transferStatus": "pending_registry", - "teamId": "5e5ea5c16897e", - "dnsRecords": [] + "$id": "eu-fr", + "name": "EU (Frankfurt)", + "available": false, + "disabled": false, + "default": true, + "flag": "fr" } }, - "domainPurchase": { - "description": "DomainPurchase", + "backupRestoration": { + "description": "Restoration", "type": "object", "properties": { "$id": { "type": "string", - "description": "Purchase\/invoice ID.", + "description": "Restoration ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Purchase creation time in ISO 8601 format.", + "description": "Restoration creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Purchase update date in ISO 8601 format.", + "description": "Restoration update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "domainId": { + "archiveId": { "type": "string", - "description": "Domain document ID.", - "x-example": "5e5ea5c16897e" + "description": "Backup archive ID.", + "x-example": "did8jx6ws45jana098ab7" }, - "domain": { + "policyId": { "type": "string", - "description": "Domain name.", - "x-example": "example.com" + "description": "Backup policy ID.", + "x-example": "did8jx6ws45jana098ab7" }, - "organizationId": { + "status": { "type": "string", - "description": "Team ID that owns the domain.", - "x-example": "5e5ea5c16897e" + "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", + "x-example": "completed" }, - "status": { + "startedAt": { "type": "string", - "description": "Domain purchase status.", - "x-example": "pending", - "enum": [ - "pending", - "succeeded", - "failed", - "cancelled" - ], - "x-enum-name": "DomainPurchaseStatus" + "description": "The backup start time.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "clientSecret": { + "migrationId": { "type": "string", - "description": "Stripe client secret for 3DS; empty when not applicable.", - "x-example": "" + "description": "Migration ID.", + "x-example": "did8jx6ws45jana098ab7" }, - "amount": { - "type": "number", - "description": "Purchase amount.", - "x-example": 25.99, - "format": "double" + "services": { + "type": "array", + "description": "The services that are backed up by this policy.", + "items": { + "type": "string" + }, + "x-example": "['databases', 'storage']" }, - "currency": { + "resources": { + "type": "array", + "description": "The resources that are backed up by this policy.", + "items": { + "type": "string" + }, + "x-example": "['databases', 'collections', 'attributes', 'indexes']" + }, + "options": { "type": "string", - "description": "Currency code.", - "x-example": "USD" + "description": "Optional data in key-value object. ", + "x-example": "{databases.database[{oldId, newId, newName}]}" } }, "required": [ "$id", "$createdAt", "$updatedAt", - "domainId", - "domain", - "organizationId", + "archiveId", + "policyId", "status", - "clientSecret", - "amount", - "currency" + "startedAt", + "migrationId", + "services", + "resources", + "options" ], "example": { "$id": "5e5ea5c16897e", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "domainId": "5e5ea5c16897e", - "domain": "example.com", - "organizationId": "5e5ea5c16897e", - "status": "pending", - "clientSecret": "", - "amount": 25.99, - "currency": "USD" + "archiveId": "did8jx6ws45jana098ab7", + "policyId": "did8jx6ws45jana098ab7", + "status": "completed", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "migrationId": "did8jx6ws45jana098ab7", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "options": "{databases.database[{oldId, newId, newName}]}" } }, - "dnsRecord": { - "description": "DNSRecord", + "dedicatedDatabaseRestorationList": { + "description": "Dedicated database restorations list", "type": "object", "properties": { - "$id": { + "total": { + "type": "integer", + "description": "Total number of restorations that matched your query.", + "x-example": 5, + "format": "int32" + }, + "restorations": { + "type": "array", + "description": "List of restorations.", + "items": { + "$ref": "#\/components\/schemas\/dedicatedDatabaseRestoration" + }, + "x-example": "" + } + }, + "required": [ + "total", + "restorations" + ], + "example": { + "total": 5, + "restorations": "" + } + }, + "review": { + "description": "Review", + "type": "object", + "properties": { + "name": { "type": "string", - "description": "DNS Record ID.", - "x-example": "5f40a6e10c65e" + "description": "Name of user", + "x-example": "" }, - "$createdAt": { + "image": { "type": "string", - "description": "DNS Record creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Reviewer image", + "x-example": "" }, - "$updatedAt": { + "description": { "type": "string", - "description": "DNS Record update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Reviewer description", + "x-example": "" }, - "type": { + "review": { "type": "string", - "description": "DNS record type (e.g. A, CNAME, MX).", - "x-example": "A" + "description": "Review", + "x-example": "" + } + }, + "required": [ + "name", + "image", + "description", + "review" + ], + "example": { + "name": "", + "image": "", + "description": "", + "review": "" + } + }, + "roles": { + "description": "Roles", + "type": "object", + "properties": { + "scopes": { + "type": "array", + "description": "Array of scopes accessible to current user.", + "items": { + "type": "string" + }, + "x-example": "users.read" }, - "name": { + "roles": { + "type": "array", + "description": "Array of roles assigned to current user.", + "items": { + "type": "string" + }, + "x-example": "developer" + } + }, + "required": [ + "scopes", + "roles" + ], + "example": { + "scopes": "users.read", + "roles": "developer" + } + }, + "dedicatedDatabaseSchema": { + "description": "Schema", + "type": "object", + "properties": { + "tables": { + "type": "array", + "description": "List of tables with columns, types, and constraints.", + "items": { + "$ref": "#\/components\/schemas\/any" + }, + "x-example": [] + }, + "indexes": { + "type": "array", + "description": "List of indexes across all tables.", + "items": { + "$ref": "#\/components\/schemas\/any" + }, + "x-example": [] + } + }, + "required": [ + "tables", + "indexes" + ], + "example": { + "tables": [], + "indexes": [] + } + }, + "dedicatedDatabaseSchemaPreview": { + "description": "SchemaPreview", + "type": "object", + "properties": { + "supportsTransactionalDDL": { + "type": "boolean", + "description": "Whether the engine supports transactional DDL for safe preview.", + "x-example": true + }, + "preview": { "type": "string", - "description": "Record name or subdomain.", - "x-example": "mail" + "description": "Schema change preview output.", + "x-example": "ALTER TABLE users ADD COLUMN age INTEGER" }, - "value": { + "tables": { + "type": "array", + "description": "List of tables in the database after the change.", + "items": { + "type": "string" + }, + "x-example": [ + "users", + "orders" + ] + } + }, + "required": [ + "supportsTransactionalDDL", + "preview", + "tables" + ], + "example": { + "supportsTransactionalDDL": true, + "preview": "ALTER TABLE users ADD COLUMN age INTEGER", + "tables": [ + "users", + "orders" + ] + } + }, + "dedicatedDatabaseSlowQuery": { + "description": "SlowQuery", + "type": "object", + "properties": { + "query": { "type": "string", - "description": "Value of the record (IP address, domain, etc.).", - "x-example": "192.0.2.1" + "description": "The SQL query text.", + "x-example": "SELECT * FROM users WHERE email = $1" }, - "ttl": { - "type": "integer", - "description": "Time to live (in seconds).", - "x-example": 86400, - "format": "int32" + "durationMs": { + "type": "number", + "description": "Query duration in milliseconds.", + "x-example": 523.4, + "format": "double" }, - "priority": { + "calls": { "type": "integer", - "description": "Record priority (commonly used for MX).", - "x-example": 10, + "description": "Number of times this query has been executed.", + "x-example": 42, "format": "int32" }, - "lock": { - "type": "boolean", - "description": "Whether this record is locked (read-only).", - "x-example": false + "user": { + "type": "string", + "description": "Database user that executed the query.", + "x-example": "appwrite" }, - "weight": { + "database": { + "type": "string", + "description": "Database name.", + "x-example": "appwrite" + } + }, + "required": [ + "query", + "durationMs", + "calls", + "user", + "database" + ], + "example": { + "query": "SELECT * FROM users WHERE email = $1", + "durationMs": 523.4, + "calls": 42, + "user": "appwrite", + "database": "appwrite" + } + }, + "databaseStatusConnections": { + "description": "Connections", + "type": "object", + "properties": { + "current": { "type": "integer", - "description": "Record weight (used for SRV records).", - "x-example": 10, + "description": "Current number of active connections.", + "x-example": 12, "format": "int32" }, - "port": { + "max": { "type": "integer", - "description": "Target port (used for SRV records).", - "x-example": 443, + "description": "Maximum allowed connections.", + "x-example": 100, "format": "int32" - }, - "comment": { - "type": "string", - "description": "Comment for the DNS record.", - "x-example": "Mail server record" } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "type", - "name", - "value", - "ttl", - "priority", - "lock", - "weight", - "port", - "comment" + "current", + "max" ], "example": { - "$id": "5f40a6e10c65e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "type": "A", - "name": "mail", - "value": "192.0.2.1", - "ttl": 86400, - "priority": 10, - "lock": false, - "weight": 10, - "port": 443, - "comment": "Mail server record" + "current": 12, + "max": 100 } }, - "usageResources": { - "description": "UsageResource", + "databaseStatusReplica": { + "description": "Replica", "type": "object", "properties": { - "name": { - "type": "string", - "description": "Invoice name", - "x-example": "" - }, - "value": { + "index": { "type": "integer", - "description": "Invoice value", + "description": "StatefulSet pod index (0 = primary, 1+ = replicas).", "x-example": 0, "format": "int32" }, - "amount": { - "type": "number", - "description": "Invoice amount", - "x-example": 500, - "format": "double" + "role": { + "type": "string", + "description": "Replica role: primary or replica.", + "x-example": "primary" }, - "rate": { + "healthy": { + "type": "boolean", + "description": "Whether the replica is healthy.", + "x-example": true + }, + "lagSeconds": { "type": "number", - "description": "Invoice rate", - "x-example": 12.5, - "format": "double" + "description": "Replication lag in seconds (null for primary).", + "x-example": 0.2, + "format": "double", + "nullable": true + } + }, + "required": [ + "index", + "role", + "healthy" + ], + "example": { + "index": 0, + "role": "primary", + "healthy": true, + "lagSeconds": 0.2 + } + }, + "databaseStatusVolume": { + "description": "Volume", + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "Mount path of the volume.", + "x-example": "\/var\/lib\/postgresql\/data" }, - "desc": { + "usedPercent": { "type": "string", - "description": "Invoice description", - "x-example": "Your monthly recurring Pro plan." + "description": "Percentage of storage used.", + "x-example": "45%" }, - "resourceId": { + "available": { "type": "string", - "description": "Resource ID", - "x-example": "" + "description": "Available storage space.", + "x-example": "55GB" + }, + "mounted": { + "type": "boolean", + "description": "Whether the volume is mounted.", + "x-example": true } }, "required": [ - "name", - "value", - "amount", - "rate", - "desc", - "resourceId" + "path", + "usedPercent", + "available", + "mounted" ], "example": { - "name": "", - "value": 0, - "amount": 500, - "rate": 12.5, - "desc": "Your monthly recurring Pro plan.", - "resourceId": "" + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true } }, "usageBillingPlan": { @@ -99234,901 +104386,961 @@ "credits": null } }, - "estimation": { - "description": "Estimation", + "dedicatedDatabaseUsage": { + "description": "DedicatedDatabase", "type": "object", "properties": { - "amount": { + "$id": { + "type": "string", + "description": "Database ID.", + "x-example": "5e5ea5c16897e" + }, + "range": { + "type": "string", + "description": "The time range of the usage stats.", + "x-example": "30d" + }, + "provisionedCpu": { + "type": "number", + "description": "Provisioned CPU cores for the database specification.", + "x-example": 2, + "format": "double" + }, + "provisionedMemoryBytes": { + "type": "integer", + "description": "Provisioned memory in bytes for the database specification.", + "x-example": 4294967296, + "format": "int32" + }, + "provisionedStorageBytes": { + "type": "integer", + "description": "Provisioned storage in bytes for the database specification.", + "x-example": 107374182400, + "format": "int32" + }, + "provisionedConnections": { + "type": "integer", + "description": "Maximum concurrent connections allowed by the database specification.", + "x-example": 200, + "format": "int32" + }, + "computeTotal": { + "type": "integer", + "description": "Total aggregated compute time in milliseconds.", + "x-example": 0, + "format": "int32" + }, + "storageTotal": { + "type": "integer", + "description": "Total aggregated storage used in bytes.", + "x-example": 0, + "format": "int32" + }, + "inboundTotal": { + "type": "integer", + "description": "Total aggregated inbound network traffic in bytes.", + "x-example": 0, + "format": "int32" + }, + "outboundTotal": { + "type": "integer", + "description": "Total aggregated outbound network traffic in bytes.", + "x-example": 0, + "format": "int32" + }, + "connectionsTotal": { + "type": "integer", + "description": "Total aggregated number of database connections.", + "x-example": 0, + "format": "int32" + }, + "coldStartsTotal": { + "type": "integer", + "description": "Total aggregated number of cold starts.", + "x-example": 0, + "format": "int32" + }, + "cpuTotal": { "type": "number", - "description": "Total amount", - "x-example": 50, + "description": "Latest CPU usage percent (0-100).", + "x-example": 45.2, "format": "double" }, - "grossAmount": { + "memoryTotal": { "type": "number", - "description": "Gross payable amount", - "x-example": 50, + "description": "Latest memory usage percent (0-100).", + "x-example": 62.1, "format": "double" }, - "discount": { + "qpsTotal": { "type": "number", - "description": "Discount amount", - "x-example": 50, + "description": "Latest queries per second.", + "x-example": 230.7, "format": "double" }, - "credits": { + "iopsReadTotal": { "type": "number", - "description": "Credits amount", - "x-example": 50, + "description": "Latest read IOPS.", + "x-example": 125.5, "format": "double" }, - "items": { + "iopsWriteTotal": { + "type": "number", + "description": "Latest write IOPS.", + "x-example": 45.3, + "format": "double" + }, + "compute": { "type": "array", - "description": "Estimation items", + "description": "Aggregated compute time per period in milliseconds.", "items": { - "$ref": "#\/components\/schemas\/estimation_item" + "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "discounts": { + "storage": { "type": "array", - "description": "Estimation discount items", + "description": "Aggregated storage used per period in bytes.", "items": { - "$ref": "#\/components\/schemas\/estimation_item" + "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "trialDays": { - "type": "integer", - "description": "Trial days", - "x-example": 14, - "format": "int32" - }, - "trialEndDate": { - "type": "string", - "description": "Trial end date", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true - } - }, - "required": [ - "amount", - "grossAmount", - "discount", - "credits", - "items", - "discounts", - "trialDays" - ], - "example": { - "amount": 50, - "grossAmount": 50, - "discount": 50, - "credits": 50, - "items": [], - "discounts": [], - "trialDays": 14, - "trialEndDate": "2020-10-15T06:38:00.000+00:00" - } - }, - "estimationUpdatePlan": { - "description": "EstimationUpdatePlan", - "type": "object", - "properties": { - "amount": { - "type": "number", - "description": "Total amount", - "x-example": 50, - "format": "double" + "inbound": { + "type": "array", + "description": "Aggregated inbound network traffic per period in bytes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "grossAmount": { - "type": "number", - "description": "Gross payable amount", - "x-example": 50, - "format": "double" + "outbound": { + "type": "array", + "description": "Aggregated outbound network traffic per period in bytes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "discount": { - "type": "number", - "description": "Discount amount", - "x-example": 50, - "format": "double" + "connections": { + "type": "array", + "description": "Aggregated number of database connections per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "credits": { - "type": "number", - "description": "Credits amount", - "x-example": 50, - "format": "double" + "coldStarts": { + "type": "array", + "description": "Aggregated number of cold starts per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "items": { + "cpu": { "type": "array", - "description": "Estimation items", + "description": "CPU usage percent per period.", "items": { - "$ref": "#\/components\/schemas\/estimation_item" + "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "discounts": { + "memory": { "type": "array", - "description": "Estimation discount items", + "description": "Memory usage percent per period.", "items": { - "$ref": "#\/components\/schemas\/estimation_item" + "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "trialDays": { - "type": "integer", - "description": "Trial days", - "x-example": 14, - "format": "int32" + "qps": { + "type": "array", + "description": "Queries per second per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "trialEndDate": { - "type": "string", - "description": "Trial end date", - "x-example": "2020-10-15T06:38:00.000+00:00", - "nullable": true + "iopsRead": { + "type": "array", + "description": "Read IOPS per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "organizationCredits": { - "type": "number", - "description": "Organization's existing credits", - "x-example": 0, - "format": "double" + "iopsWrite": { + "type": "array", + "description": "Write IOPS per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] } }, "required": [ - "amount", - "grossAmount", - "discount", - "credits", - "items", - "discounts", - "trialDays", - "organizationCredits" + "$id", + "range", + "provisionedCpu", + "provisionedMemoryBytes", + "provisionedStorageBytes", + "provisionedConnections", + "computeTotal", + "storageTotal", + "inboundTotal", + "outboundTotal", + "connectionsTotal", + "coldStartsTotal", + "cpuTotal", + "memoryTotal", + "qpsTotal", + "iopsReadTotal", + "iopsWriteTotal", + "compute", + "storage", + "inbound", + "outbound", + "connections", + "coldStarts", + "cpu", + "memory", + "qps", + "iopsRead", + "iopsWrite" ], "example": { - "amount": 50, - "grossAmount": 50, - "discount": 50, - "credits": 50, - "items": [], - "discounts": [], - "trialDays": 14, - "trialEndDate": "2020-10-15T06:38:00.000+00:00", - "organizationCredits": 0 + "$id": "5e5ea5c16897e", + "range": "30d", + "provisionedCpu": 2, + "provisionedMemoryBytes": 4294967296, + "provisionedStorageBytes": 107374182400, + "provisionedConnections": 200, + "computeTotal": 0, + "storageTotal": 0, + "inboundTotal": 0, + "outboundTotal": 0, + "connectionsTotal": 0, + "coldStartsTotal": 0, + "cpuTotal": 45.2, + "memoryTotal": 62.1, + "qpsTotal": 230.7, + "iopsReadTotal": 125.5, + "iopsWriteTotal": 45.3, + "compute": [], + "storage": [], + "inbound": [], + "outbound": [], + "connections": [], + "coldStarts": [], + "cpu": [], + "memory": [], + "qps": [], + "iopsRead": [], + "iopsWrite": [] } }, - "estimationPlanChange": { - "description": "EstimationPlanChange", + "usageEvent": { + "description": "usageEvent", "type": "object", "properties": { - "currentBillingPlanId": { + "metric": { "type": "string", - "description": "Current billing plan ID", - "x-example": "tier-2" + "description": "The metric key.", + "x-example": "bandwidth" }, - "targetBillingPlanId": { + "value": { + "type": "integer", + "description": "The metric value.", + "x-example": 5000, + "format": "int32" + }, + "time": { "type": "string", - "description": "Target billing plan ID", - "x-example": "tier-0" + "description": "The event timestamp.", + "x-example": "2026-04-09T12:00:00.000+00:00" }, - "direction": { + "path": { "type": "string", - "description": "Direction of plan change: upgrade, downgrade, or same", - "x-example": "downgrade" + "description": "The API endpoint path.", + "x-example": "\/v1\/storage\/files" }, - "estimation": { - "type": "object", - "description": "Cost estimation details", - "x-example": null, - "items": { - "$ref": "#\/components\/schemas\/planChangeEstimationDetails" - } + "method": { + "type": "string", + "description": "The HTTP method.", + "x-example": "POST" }, - "limits": { - "type": "object", - "description": "Plan limits and compliance information", - "x-example": null, - "items": { - "$ref": "#\/components\/schemas\/planChangeLimits" - } + "status": { + "type": "string", + "description": "HTTP status code. Stored as string to preserve unset state (empty string = not available).", + "x-example": "201" + }, + "resourceType": { + "type": "string", + "description": "The resource type.", + "x-example": "bucket" + }, + "resourceId": { + "type": "string", + "description": "The resource ID.", + "x-example": "abc123" + }, + "countryCode": { + "type": "string", + "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format.", + "x-example": "US" + }, + "userAgent": { + "type": "string", + "description": "The user agent string.", + "x-example": "AppwriteSDK\/1.0" } }, "required": [ - "currentBillingPlanId", - "targetBillingPlanId", - "direction", - "estimation", - "limits" + "metric", + "value", + "time", + "path", + "method", + "status", + "resourceType", + "resourceId", + "countryCode", + "userAgent" ], "example": { - "currentBillingPlanId": "tier-2", - "targetBillingPlanId": "tier-0", - "direction": "downgrade", - "estimation": null, - "limits": null + "metric": "bandwidth", + "value": 5000, + "time": "2026-04-09T12:00:00.000+00:00", + "path": "\/v1\/storage\/files", + "method": "POST", + "status": "201", + "resourceType": "bucket", + "resourceId": "abc123", + "countryCode": "US", + "userAgent": "AppwriteSDK\/1.0" } }, - "planChangeEstimationDetails": { - "description": "PlanChangeEstimationDetails", + "usageGauge": { + "description": "usageGauge", "type": "object", "properties": { - "currency": { + "metric": { "type": "string", - "description": "Currency code", - "x-example": "USD" + "description": "The metric key.", + "x-example": "users" }, - "grossAmount": { - "type": "number", - "description": "Gross amount after all discounts and credits", - "x-example": 15, - "format": "double" + "value": { + "type": "integer", + "description": "The current snapshot value.", + "x-example": 1500, + "format": "int32" }, - "credits": { - "type": "number", - "description": "Credits applied from coupon", - "x-example": 0, - "format": "double" + "time": { + "type": "string", + "description": "The snapshot timestamp.", + "x-example": "2026-04-09T12:00:00.000+00:00" + } + }, + "required": [ + "metric", + "value", + "time" + ], + "example": { + "metric": "users", + "value": 1500, + "time": "2026-04-09T12:00:00.000+00:00" + } + }, + "usageOrganization": { + "description": "Organization", + "type": "object", + "properties": { + "bandwidth": { + "type": "array", + "description": "Aggregated stats for number of requests.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "organizationCredits": { - "type": "number", - "description": "Organization's existing credits applied", - "x-example": 5, - "format": "double" + "users": { + "type": "array", + "description": "Aggregated stats for consumed bandwidth.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "discount": { - "type": "number", - "description": "Discount amount from prorated invoices", - "x-example": 0, - "format": "double" + "executions": { + "type": "array", + "description": "Aggregated stats for function executions.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "amount": { - "type": "number", - "description": "Total amount before discounts and credits", - "x-example": 20, - "format": "double" + "databasesReads": { + "type": "array", + "description": "Aggregated stats for database reads.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "nextInvoiceDate": { - "type": "string", - "description": "Next invoice date", - "x-example": "2025-12-01T00:00:00.000Z" + "databasesWrites": { + "type": "array", + "description": "Aggregated stats for database writes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "items": { + "imageTransformations": { "type": "array", - "description": "Line items breakdown", + "description": "Aggregated stats for file transformations.", "items": { - "type": "object" + "$ref": "#\/components\/schemas\/metric" }, - "x-example": [ - { - "label": "Starter plan", - "value": 0 - }, - { - "label": "Additional seats", - "value": 10 - } - ] + "x-example": [] }, - "discounts": { + "imageTransformationsTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "x-example": 0, + "format": "int32" + }, + "screenshotsGenerated": { "type": "array", - "description": "Applied discounts breakdown", + "description": "Aggregated stats for file transformations.", "items": { - "type": "object" + "$ref": "#\/components\/schemas\/metric" }, - "x-example": [ - { - "label": "Organization credits", - "value": 5 - } - ] - } - }, - "required": [ - "currency", - "grossAmount", - "credits", - "organizationCredits", - "discount", - "amount", - "nextInvoiceDate", - "items", - "discounts" - ], - "example": { - "currency": "USD", - "grossAmount": 15, - "credits": 0, - "organizationCredits": 5, - "discount": 0, - "amount": 20, - "nextInvoiceDate": "2025-12-01T00:00:00.000Z", - "items": [ - { - "label": "Starter plan", - "value": 0 + "x-example": [] + }, + "screenshotsGeneratedTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "x-example": 0, + "format": "int32" + }, + "imagineCredits": { + "type": "array", + "description": "Aggregated stats for imagine credits.", + "items": { + "$ref": "#\/components\/schemas\/metric" }, - { - "label": "Additional seats", - "value": 10 - } - ], - "discounts": [ - { - "label": "Organization credits", - "value": 5 - } - ] - } - }, - "planChangeLimits": { - "description": "PlanChangeLimits", - "type": "object", - "properties": { - "totalProjects": { + "x-example": [] + }, + "imagineCreditsTotal": { + "type": "integer", + "description": "Aggregated stats for total imagine credits.", + "x-example": 0, + "format": "int32" + }, + "usersTotal": { + "type": "integer", + "description": "Aggregated stats for total users.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Aggregated stats for total executions.", + "x-example": 0, + "format": "int32" + }, + "executionsMBSecondsTotal": { + "type": "integer", + "description": "Aggregated stats for function executions in mb seconds.", + "x-example": 0, + "format": "int32" + }, + "buildsMBSecondsTotal": { + "type": "integer", + "description": "Aggregated stats for function builds in mb seconds.", + "x-example": 0, + "format": "int32" + }, + "filesStorageTotal": { "type": "integer", - "description": "Total number of projects in the organization", - "x-example": 5, + "description": "Aggregated stats for total file storage.", + "x-example": 0, "format": "int32" }, - "nonCompliantProjects": { + "buildsStorageTotal": { "type": "integer", - "description": "Number of projects exceeding target plan limits", - "x-example": 2, + "description": "Aggregated stats for total builds storage.", + "x-example": 0, "format": "int32" }, - "canChangePlan": { - "type": "boolean", - "description": "Whether the plan change is allowed", - "x-example": false + "deploymentsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total deployments storage.", + "x-example": 0, + "format": "int32" + }, + "databasesStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total databases storage.", + "x-example": 0, + "format": "int32" + }, + "databasesReadsTotal": { + "type": "integer", + "description": "Aggregated stats for total databases reads.", + "x-example": 0, + "format": "int32" + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Aggregated stats for total databases writes.", + "x-example": 0, + "format": "int32" + }, + "backupsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total backups storage.", + "x-example": 0, + "format": "int32" + }, + "storageTotal": { + "type": "integer", + "description": "Aggregated stats for total storage.", + "x-example": 0, + "format": "int32" + }, + "authPhoneTotal": { + "type": "integer", + "description": "Aggregated stats for total auth phone.", + "x-example": 0, + "format": "int32" + }, + "authPhoneEstimate": { + "type": "integer", + "description": "Aggregated stats for total auth phone estimation.", + "x-example": 0, + "format": "int32" }, "projects": { "type": "array", - "description": "Project compliance details", + "description": "Aggregated stats for each projects.", "items": { - "$ref": "#\/components\/schemas\/planChangeProjectCompliance" + "$ref": "#\/components\/schemas\/usageOrganizationProject" }, "x-example": [] }, - "unsupportedAddons": { + "realtimeConnections": { "type": "array", - "description": "Active addon keys that the target plan does not support. When non-empty, `canChangePlan` is false.", + "description": "Aggregated stats for realtime connections.", "items": { - "type": "string" + "$ref": "#\/components\/schemas\/metric" }, - "x-example": [ - "baa" - ] - } - }, - "required": [ - "totalProjects", - "nonCompliantProjects", - "canChangePlan", - "projects", - "unsupportedAddons" - ], - "example": { - "totalProjects": 5, - "nonCompliantProjects": 2, - "canChangePlan": false, - "projects": [], - "unsupportedAddons": [ - "baa" - ] - } - }, - "planChangeProjectCompliance": { - "description": "PlanChangeProjectCompliance", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Project ID", - "x-example": "proj_a" - }, - "name": { - "type": "string", - "description": "Project name", - "x-example": "Marketing Site" + "x-example": [] }, - "isCompliant": { - "type": "boolean", - "description": "Whether the project complies with target plan limits", - "x-example": false + "realtimeConnectionsTotal": { + "type": "integer", + "description": "Aggregated stats for total realtime connections.", + "x-example": 0, + "format": "int32" }, - "resources": { + "realtimeMessages": { "type": "array", - "description": "Resource compliance details", + "description": "Aggregated stats for realtime messages.", "items": { - "$ref": "#\/components\/schemas\/planChangeResourceCompliance" + "$ref": "#\/components\/schemas\/metric" }, "x-example": [] }, - "error": { - "type": "string", - "description": "Failure reason when compliance could not be evaluated. Present only when the project DB or Regions API was unreachable; in that case `isCompliant` is false (fail closed) and `resources` is empty.", - "x-example": "Failed to get project compliance from Regions API. Status: 500", - "nullable": true - } - }, - "required": [ - "$id", - "name", - "isCompliant", - "resources" - ], - "example": { - "$id": "proj_a", - "name": "Marketing Site", - "isCompliant": false, - "resources": [], - "error": "Failed to get project compliance from Regions API. Status: 500" - } - }, - "planChangeResourceCompliance": { - "description": "PlanChangeResourceCompliance", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Resource type", - "x-example": "databases" - }, - "currentUsage": { - "type": "integer", - "description": "Current usage count", - "x-example": 3, - "format": "int32" - }, - "limit": { + "realtimeMessagesTotal": { "type": "integer", - "description": "Allowed limit in target plan", - "x-example": 1, + "description": "Aggregated stats for total realtime messages.", + "x-example": 0, "format": "int32" }, - "status": { - "type": "string", - "description": "Compliance status", - "x-example": "over_limit" + "realtimeBandwidth": { + "type": "array", + "description": "Aggregated stats for realtime bandwidth.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "excess": { + "realtimeBandwidthTotal": { "type": "integer", - "description": "Number of resources exceeding the limit", - "x-example": 2, + "description": "Aggregated stats for total realtime bandwidth.", + "x-example": 0, "format": "int32" - }, - "resolutionHint": { - "type": "string", - "description": "Suggestion for resolving the compliance issue", - "x-example": "Delete or migrate 2 databases." } }, "required": [ - "type", - "currentUsage", - "limit", - "status", - "excess", - "resolutionHint" + "bandwidth", + "users", + "executions", + "databasesReads", + "databasesWrites", + "imageTransformations", + "imageTransformationsTotal", + "screenshotsGenerated", + "screenshotsGeneratedTotal", + "imagineCredits", + "imagineCreditsTotal", + "usersTotal", + "executionsTotal", + "executionsMBSecondsTotal", + "buildsMBSecondsTotal", + "filesStorageTotal", + "buildsStorageTotal", + "deploymentsStorageTotal", + "databasesStorageTotal", + "databasesReadsTotal", + "databasesWritesTotal", + "backupsStorageTotal", + "storageTotal", + "authPhoneTotal", + "authPhoneEstimate", + "projects", + "realtimeConnections", + "realtimeConnectionsTotal", + "realtimeMessages", + "realtimeMessagesTotal", + "realtimeBandwidth", + "realtimeBandwidthTotal" ], "example": { - "type": "databases", - "currentUsage": 3, - "limit": 1, - "status": "over_limit", - "excess": 2, - "resolutionHint": "Delete or migrate 2 databases." + "bandwidth": [], + "users": [], + "executions": [], + "databasesReads": [], + "databasesWrites": [], + "imageTransformations": [], + "imageTransformationsTotal": 0, + "screenshotsGenerated": [], + "screenshotsGeneratedTotal": 0, + "imagineCredits": [], + "imagineCreditsTotal": 0, + "usersTotal": 0, + "executionsTotal": 0, + "executionsMBSecondsTotal": 0, + "buildsMBSecondsTotal": 0, + "filesStorageTotal": 0, + "buildsStorageTotal": 0, + "deploymentsStorageTotal": 0, + "databasesStorageTotal": 0, + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "backupsStorageTotal": 0, + "storageTotal": 0, + "authPhoneTotal": 0, + "authPhoneEstimate": 0, + "projects": [], + "realtimeConnections": [], + "realtimeConnectionsTotal": 0, + "realtimeMessages": [], + "realtimeMessagesTotal": 0, + "realtimeBandwidth": [], + "realtimeBandwidthTotal": 0 } }, - "estimationDeleteOrganization": { - "description": "EstimationDeleteOrganization", + "usageOrganizationProject": { + "description": "OrganizationProject", "type": "object", "properties": { - "unpaidInvoices": { + "projectId": { + "type": "string", + "description": "projectId", + "x-example": "5e5ea5c16897e" + }, + "bandwidth": { "type": "array", - "description": "List of unpaid invoices", + "description": "Aggregated stats for number of requests.", "items": { - "$ref": "#\/components\/schemas\/invoice" + "$ref": "#\/components\/schemas\/metric" }, "x-example": [] - } - }, - "required": [ - "unpaidInvoices" - ], - "example": { - "unpaidInvoices": [] - } - }, - "estimation_item": { - "description": "EstimationItem", - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Label", - "x-example": "Plan name" }, - "value": { - "type": "number", - "description": "Gross payable amount", - "x-example": 50, - "format": "double" - } - }, - "required": [ - "label", - "value" - ], - "example": { - "label": "Plan name", - "value": 50 - } - }, - "domainPrice": { - "description": "DomainPrice", - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "x-example": "example.com" + "users": { + "type": "array", + "description": "Aggregated stats for consumed bandwidth.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "tld": { - "type": "string", - "description": "Top-level domain for the requested domain.", - "x-example": "com" + "executions": { + "type": "integer", + "description": "Aggregated stats for function executions.", + "x-example": [], + "format": "int32" }, - "available": { - "type": "boolean", - "description": "Whether the domain is currently available for registration.", - "x-example": true + "databasesReads": { + "type": "array", + "description": "Aggregated stats for database reads.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "price": { - "type": "number", - "description": "Domain registration price.", - "x-example": 25.99, - "format": "double" + "databasesWrites": { + "type": "array", + "description": "Aggregated stats for database writes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "periodYears": { + "executionsMBSeconds": { "type": "integer", - "description": "Price period in years.", - "x-example": 1, + "description": "Aggregated stats for function executions in mb seconds.", + "x-example": 0, "format": "int32" }, - "premium": { - "type": "boolean", - "description": "Whether the domain is a premium domain.", - "x-example": false - } - }, - "required": [ - "domain", - "tld", - "available", - "price", - "periodYears", - "premium" - ], - "example": { - "domain": "example.com", - "tld": "com", - "available": true, - "price": 25.99, - "periodYears": 1, - "premium": false - } - }, - "domainSuggestion": { - "description": "DomainSuggestion", - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain suggestion.", - "x-example": "example.com" + "buildsMBSeconds": { + "type": "integer", + "description": "Aggregated stats for function builds in mb seconds.", + "x-example": 0, + "format": "int32" }, - "premium": { - "type": "boolean", - "description": "Is the domain premium?", - "x-example": true + "storage": { + "type": "integer", + "description": "Aggregated stats for number of documents.", + "x-example": [], + "format": "int32" }, - "price": { - "type": "number", - "description": "Domain price.", - "x-example": 25.99, - "format": "double", - "nullable": true + "authPhoneTotal": { + "type": "integer", + "description": "Aggregated stats for phone authentication.", + "x-example": [], + "format": "int32" }, - "available": { - "type": "boolean", - "description": "Is the domain available?", - "x-example": true - } - }, - "required": [ - "domain", - "premium", - "available" - ], - "example": { - "domain": "example.com", - "premium": true, - "price": 25.99, - "available": true - } - }, - "addon": { - "description": "Addon", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Addon ID.", - "x-example": "5e5ea5c16897e" + "authPhoneEstimate": { + "type": "number", + "description": "Aggregated stats for phone authentication estimated cost.", + "x-example": [], + "format": "double" }, - "$createdAt": { - "type": "string", - "description": "Addon creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "databasesReadsTotal": { + "type": "integer", + "description": "Aggregated stats for total databases reads.", + "x-example": 0, + "format": "int32" }, - "$updatedAt": { - "type": "string", - "description": "Addon update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "databasesWritesTotal": { + "type": "integer", + "description": "Aggregated stats for total databases writes.", + "x-example": 0, + "format": "int32" }, - "$permissions": { + "imageTransformations": { "type": "array", - "description": "Addon permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Aggregated stats for file transformations.", "items": { - "type": "string" + "$ref": "#\/components\/schemas\/metric" }, - "x-example": [ - "read(\"any\")" - ] + "x-example": [] }, - "key": { - "type": "string", - "description": "Addon key", - "x-example": "baa" + "imageTransformationsTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "x-example": 0, + "format": "int32" }, - "resourceType": { - "type": "string", - "description": "Resource type (organization or project)", - "x-example": "organization" + "screenshotsGenerated": { + "type": "array", + "description": "Aggregated stats for file transformations.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] }, - "resourceId": { - "type": "string", - "description": "Resource ID", - "x-example": "5e5ea5c16897e" + "screenshotsGeneratedTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "x-example": 0, + "format": "int32" + }, + "imagineCredits": { + "type": "integer", + "description": "Aggregated stats for imagine credits.", + "x-example": 0, + "format": "int32" }, - "status": { - "type": "string", - "description": "Payment status. Possible values: pending (awaiting payment confirmation e.g. 3DS), active (payment confirmed and addon is running).", - "x-example": "active" + "realtimeConnections": { + "type": "integer", + "description": "Aggregated stats for realtime connections.", + "x-example": 0, + "format": "int32" }, - "currentValue": { + "realtimeMessages": { "type": "integer", - "description": "Current value for this billing cycle. For toggle addons: 1 (on) or 0 (off). For numeric addons: the active quantity.", - "x-example": 1, + "description": "Aggregated stats for realtime messages.", + "x-example": 0, "format": "int32" }, - "nextValue": { + "realtimeBandwidth": { "type": "integer", - "description": "Value to apply at the start of the next billing cycle. Null means no change is scheduled. For toggle addons, 0 means the addon will be removed at the next cycle.", - "x-example": null, - "format": "int32", - "nullable": true + "description": "Aggregated stats for realtime bandwidth.", + "x-example": 0, + "format": "int32" } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "key", - "resourceType", - "resourceId", - "status", - "currentValue" + "projectId", + "bandwidth", + "users", + "executions", + "databasesReads", + "databasesWrites", + "executionsMBSeconds", + "buildsMBSeconds", + "storage", + "authPhoneTotal", + "authPhoneEstimate", + "databasesReadsTotal", + "databasesWritesTotal", + "imageTransformations", + "imageTransformationsTotal", + "screenshotsGenerated", + "screenshotsGeneratedTotal", + "imagineCredits", + "realtimeConnections", + "realtimeMessages", + "realtimeBandwidth" ], "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "key": "baa", - "resourceType": "organization", - "resourceId": "5e5ea5c16897e", - "status": "active", - "currentValue": 1, - "nextValue": null + "projectId": "5e5ea5c16897e", + "bandwidth": [], + "users": [], + "executions": [], + "databasesReads": [], + "databasesWrites": [], + "executionsMBSeconds": 0, + "buildsMBSeconds": 0, + "storage": [], + "authPhoneTotal": [], + "authPhoneEstimate": [], + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "imageTransformations": [], + "imageTransformationsTotal": 0, + "screenshotsGenerated": [], + "screenshotsGeneratedTotal": 0, + "imagineCredits": 0, + "realtimeConnections": 0, + "realtimeMessages": 0, + "realtimeBandwidth": 0 } }, - "addonPrice": { - "description": "AddonPrice", + "usageResources": { + "description": "Resource", "type": "object", "properties": { - "addonKey": { - "type": "string", - "description": "Addon key.", - "x-example": "baa" - }, "name": { "type": "string", - "description": "Addon display name.", - "x-example": "HIPAA BAA" + "description": "Invoice name", + "x-example": "" }, - "monthlyPrice": { + "value": { + "type": "integer", + "description": "Invoice value", + "x-example": 0, + "format": "int32" + }, + "amount": { "type": "number", - "description": "Full monthly price of the addon.", - "x-example": 350, + "description": "Invoice amount", + "x-example": 500, "format": "double" }, - "proratedAmount": { + "rate": { "type": "number", - "description": "Calculated prorated amount for the current billing cycle.", - "x-example": 175.5, + "description": "Invoice rate", + "x-example": 12.5, "format": "double" }, - "remainingDays": { - "type": "integer", - "description": "Days remaining in the current billing cycle.", - "x-example": 15, - "format": "int32" - }, - "totalCycleDays": { - "type": "integer", - "description": "Total days in the billing cycle.", - "x-example": 30, - "format": "int32" - }, - "currency": { + "desc": { "type": "string", - "description": "Currency code.", - "x-example": "USD" + "description": "Invoice description", + "x-example": "Your monthly recurring Pro plan." }, - "billingCycleEnd": { + "resourceId": { "type": "string", - "description": "When the current billing cycle ends.", - "x-example": "2024-02-01T00:00:00.000+00:00" + "description": "Resource ID", + "x-example": "" } }, "required": [ - "addonKey", "name", - "monthlyPrice", - "proratedAmount", - "remainingDays", - "totalCycleDays", - "currency", - "billingCycleEnd" - ], - "example": { - "addonKey": "baa", - "name": "HIPAA BAA", - "monthlyPrice": 350, - "proratedAmount": 175.5, - "remainingDays": 15, - "totalCycleDays": 30, - "currency": "USD", - "billingCycleEnd": "2024-02-01T00:00:00.000+00:00" - } - }, - "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" - ], - "x-enum-name": "DomainTransferStatusEnum" - }, - "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" + "value", + "amount", + "rate", + "desc", + "resourceId" ], "example": { - "status": "pending_registry", - "reason": "Transfer in progress", - "timestamp": "2020-10-15T06:38:00.000+00:00" + "name": "", + "value": 0, + "amount": 500, + "rate": 12.5, + "desc": "Your monthly recurring Pro plan.", + "resourceId": "" } }, - "addonList": { - "description": "Addons list", + "activityEventList": { + "description": "Activity event list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of addons that matched your query.", + "description": "Total number of events that matched your query.", "x-example": 5, "format": "int32" }, - "addons": { + "events": { "type": "array", - "description": "List of addons.", + "description": "List of events.", "items": { - "$ref": "#\/components\/schemas\/addon" + "$ref": "#\/components\/schemas\/activityEvent" }, "x-example": "" } }, "required": [ "total", - "addons" + "events" ], "example": { "total": 5, - "addons": "" + "events": "" } }, - "activityEventList": { - "description": "Activity event list", + "addonList": { + "description": "Addons list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of events that matched your query.", + "description": "Total number of addons that matched your query.", "x-example": 5, "format": "int32" }, - "events": { + "addons": { "type": "array", - "description": "List of events.", + "description": "List of addons.", "items": { - "$ref": "#\/components\/schemas\/activityEvent" + "$ref": "#\/components\/schemas\/addon" }, "x-example": "" } }, "required": [ "total", - "events" + "addons" ], "example": { "total": 5, - "events": "" + "addons": "" } }, "aggregationTeamList": { @@ -100243,60 +105455,60 @@ "restorations": "" } }, - "invoiceList": { - "description": "Billing invoices list", + "billingAddressList": { + "description": "Billing address list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of invoices that matched your query.", + "description": "Total number of billingAddresses that matched your query.", "x-example": 5, "format": "int32" }, - "invoices": { + "billingAddresses": { "type": "array", - "description": "List of invoices.", + "description": "List of billingAddresses.", "items": { - "$ref": "#\/components\/schemas\/invoice" + "$ref": "#\/components\/schemas\/billingAddress" }, "x-example": "" } }, "required": [ "total", - "invoices" + "billingAddresses" ], "example": { "total": 5, - "invoices": "" + "billingAddresses": "" } }, - "billingAddressList": { - "description": "Billing address list", + "invoiceList": { + "description": "Billing invoices list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of billingAddresses that matched your query.", + "description": "Total number of invoices that matched your query.", "x-example": 5, "format": "int32" }, - "billingAddresses": { + "invoices": { "type": "array", - "description": "List of billingAddresses.", + "description": "List of invoices.", "items": { - "$ref": "#\/components\/schemas\/billingAddress" + "$ref": "#\/components\/schemas\/invoice" }, "x-example": "" } }, "required": [ "total", - "billingAddresses" + "invoices" ], "example": { "total": 5, - "billingAddresses": "" + "invoices": "" } }, "billingPlanList": { @@ -100327,144 +105539,144 @@ "plans": "" } }, - "organizationList": { - "description": "Organizations list", + "blockList": { + "description": "Blocks list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of teams that matched your query.", + "description": "Total number of blocks that matched your query.", "x-example": 5, "format": "int32" }, - "teams": { + "blocks": { "type": "array", - "description": "List of teams.", + "description": "List of blocks.", "items": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/block" }, "x-example": "" } }, "required": [ "total", - "teams" + "blocks" ], "example": { "total": 5, - "teams": "" + "blocks": "" } }, - "paymentMethodList": { - "description": "Payment methods list", + "dedicatedDatabaseAuditLogList": { + "description": "Dedicated database audit logs list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of paymentMethods that matched your query.", + "description": "Total number of auditLogs that matched your query.", "x-example": 5, "format": "int32" }, - "paymentMethods": { + "auditLogs": { "type": "array", - "description": "List of paymentMethods.", + "description": "List of auditLogs.", "items": { - "$ref": "#\/components\/schemas\/paymentMethod" + "$ref": "#\/components\/schemas\/dedicatedDatabaseAuditLog" }, "x-example": "" } }, "required": [ "total", - "paymentMethods" + "auditLogs" ], "example": { "total": 5, - "paymentMethods": "" + "auditLogs": "" } }, - "blockList": { - "description": "Blocks list", + "dedicatedDatabaseConnectionList": { + "description": "Dedicated database connections list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of blocks that matched your query.", + "description": "Total number of connections that matched your query.", "x-example": 5, "format": "int32" }, - "blocks": { + "connections": { "type": "array", - "description": "List of blocks.", + "description": "List of connections.", "items": { - "$ref": "#\/components\/schemas\/block" + "$ref": "#\/components\/schemas\/dedicatedDatabaseConnection" }, "x-example": "" } }, "required": [ "total", - "blocks" + "connections" ], "example": { "total": 5, - "blocks": "" + "connections": "" } }, - "consoleRegionList": { - "description": "Regions list", + "dedicatedDatabaseSlowQueryList": { + "description": "Dedicated database slow queries list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of regions that matched your query.", + "description": "Total number of slowQueries that matched your query.", "x-example": 5, "format": "int32" }, - "regions": { + "slowQueries": { "type": "array", - "description": "List of regions.", + "description": "List of slowQueries.", "items": { - "$ref": "#\/components\/schemas\/consoleRegion" + "$ref": "#\/components\/schemas\/dedicatedDatabaseSlowQuery" }, "x-example": "" } }, "required": [ "total", - "regions" + "slowQueries" ], "example": { "total": 5, - "regions": "" + "slowQueries": "" } }, - "domainsList": { - "description": "Domains list", + "dedicatedDatabaseList": { + "description": "Dedicated databases list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of domains that matched your query.", + "description": "Total number of databases that matched your query.", "x-example": 5, "format": "int32" }, - "domains": { + "databases": { "type": "array", - "description": "List of domains.", + "description": "List of databases.", "items": { - "$ref": "#\/components\/schemas\/domain" + "$ref": "#\/components\/schemas\/dedicatedDatabase" }, "x-example": "" } }, "required": [ "total", - "domains" + "databases" ], "example": { "total": 5, - "domains": "" + "databases": "" } }, "dnsRecordsList": { @@ -100522,6 +105734,174 @@ "total": 5, "suggestions": "" } + }, + "domainsList": { + "description": "Domains list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of domains that matched your query.", + "x-example": 5, + "format": "int32" + }, + "domains": { + "type": "array", + "description": "List of domains.", + "items": { + "$ref": "#\/components\/schemas\/domain" + }, + "x-example": "" + } + }, + "required": [ + "total", + "domains" + ], + "example": { + "total": 5, + "domains": "" + } + }, + "organizationList": { + "description": "Organizations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of teams that matched your query.", + "x-example": 5, + "format": "int32" + }, + "teams": { + "type": "array", + "description": "List of teams.", + "items": { + "$ref": "#\/components\/schemas\/organization" + }, + "x-example": "" + } + }, + "required": [ + "total", + "teams" + ], + "example": { + "total": 5, + "teams": "" + } + }, + "paymentMethodList": { + "description": "Payment methods list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of paymentMethods that matched your query.", + "x-example": 5, + "format": "int32" + }, + "paymentMethods": { + "type": "array", + "description": "List of paymentMethods.", + "items": { + "$ref": "#\/components\/schemas\/paymentMethod" + }, + "x-example": "" + } + }, + "required": [ + "total", + "paymentMethods" + ], + "example": { + "total": 5, + "paymentMethods": "" + } + }, + "consoleRegionList": { + "description": "Regions list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of regions that matched your query.", + "x-example": 5, + "format": "int32" + }, + "regions": { + "type": "array", + "description": "List of regions.", + "items": { + "$ref": "#\/components\/schemas\/consoleRegion" + }, + "x-example": "" + } + }, + "required": [ + "total", + "regions" + ], + "example": { + "total": 5, + "regions": "" + } + }, + "usageEventList": { + "description": "Usage events list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of events that matched your query.", + "x-example": 5, + "format": "int32" + }, + "events": { + "type": "array", + "description": "List of events.", + "items": { + "$ref": "#\/components\/schemas\/usageEvent" + }, + "x-example": "" + } + }, + "required": [ + "total", + "events" + ], + "example": { + "total": 5, + "events": "" + } + }, + "usageGaugeList": { + "description": "Usage gauges list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of gauges that matched your query.", + "x-example": 5, + "format": "int32" + }, + "gauges": { + "type": "array", + "description": "List of gauges.", + "items": { + "$ref": "#\/components\/schemas\/usageGauge" + }, + "x-example": "" + } + }, + "required": [ + "total", + "gauges" + ], + "example": { + "total": 5, + "gauges": "" + } } }, "securitySchemes": { diff --git a/specs/latest/open-api3-latest-server.json b/specs/latest/open-api3-latest-server.json index 4e4ac5fad..a8ca087fb 100644 --- a/specs/latest/open-api3-latest-server.json +++ b/specs/latest/open-api3-latest-server.json @@ -17,10 +17,18 @@ }, "servers": [ { - "url": "https:\/\/cloud.appwrite.io\/v1" + "url": "https:\/\/cloud.appwrite.io\/v1", + "description": "Appwrite Cloud endpoint." }, { - "url": "https:\/\/<REGION>.cloud.appwrite.io\/v1" + "url": "https:\/\/{region}.cloud.appwrite.io\/v1", + "description": "Appwrite Cloud regional endpoint. Replace `{region}` with your project region.", + "variables": { + "region": { + "default": "fra", + "description": "Appwrite Cloud region." + } + } } ], "paths": { @@ -48,7 +56,6 @@ "x-appwrite": { "method": "get", "group": "account", - "weight": 9, "cookies": false, "type": "", "demo": "account\/get.md", @@ -100,7 +107,6 @@ "x-appwrite": { "method": "create", "group": "account", - "weight": 8, "cookies": false, "type": "", "demo": "account\/create.md", @@ -153,6 +159,7 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "<NAME>" } }, @@ -191,7 +198,6 @@ "x-appwrite": { "method": "updateEmail", "group": "account", - "weight": 34, "cookies": false, "type": "", "demo": "account\/update-email.md", @@ -272,7 +278,6 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 47, "cookies": false, "type": "", "demo": "account\/list-identities.md", @@ -345,7 +350,6 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 48, "cookies": false, "type": "", "demo": "account\/delete-identity.md", @@ -411,7 +415,6 @@ "x-appwrite": { "method": "createJWT", "group": "tokens", - "weight": 29, "cookies": false, "type": "", "demo": "account\/create-jwt.md", @@ -448,6 +451,7 @@ "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" } @@ -482,7 +486,6 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 31, "cookies": false, "type": "", "demo": "account\/list-logs.md", @@ -562,7 +565,6 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 165, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -635,7 +637,6 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 167, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -732,8 +733,7 @@ "enum": [ "totp" ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-enum-name": "AuthenticatorType" }, "in": "path" } @@ -762,7 +762,6 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 168, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -863,8 +862,7 @@ "enum": [ "totp" ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-enum-name": "AuthenticatorType" }, "in": "path" } @@ -905,7 +903,6 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 169, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -1000,8 +997,7 @@ "enum": [ "totp" ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-enum-name": "AuthenticatorType" }, "in": "path" } @@ -1032,7 +1028,6 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 173, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -1134,8 +1129,7 @@ "totp", "recoverycode" ], - "x-enum-name": "AuthenticationFactor", - "x-enum-keys": [] + "x-enum-name": "AuthenticationFactor" } }, "required": [ @@ -1169,7 +1163,6 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 174, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -1310,7 +1303,6 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 166, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -1414,7 +1406,6 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 172, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -1516,7 +1507,6 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 170, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -1618,7 +1608,6 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 171, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -1722,7 +1711,6 @@ "x-appwrite": { "method": "updateName", "group": "account", - "weight": 32, "cookies": false, "type": "", "demo": "account\/update-name.md", @@ -1795,7 +1783,6 @@ "x-appwrite": { "method": "updatePassword", "group": "account", - "weight": 33, "cookies": false, "type": "", "demo": "account\/update-password.md", @@ -1837,6 +1824,7 @@ "oldPassword": { "type": "string", "description": "Current user password. Must be at least 8 chars.", + "default": "", "x-example": "password", "format": "password" } @@ -1874,7 +1862,6 @@ "x-appwrite": { "method": "updatePhone", "group": "account", - "weight": 35, "cookies": false, "type": "", "demo": "account\/update-phone.md", @@ -1955,7 +1942,6 @@ "x-appwrite": { "method": "getPrefs", "group": "account", - "weight": 30, "cookies": false, "type": "", "demo": "account\/get-prefs.md", @@ -2007,7 +1993,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "account", - "weight": 36, "cookies": false, "type": "", "demo": "account\/update-prefs.md", @@ -2080,7 +2065,6 @@ "x-appwrite": { "method": "createRecovery", "group": "recovery", - "weight": 38, "cookies": false, "type": "", "demo": "account\/create-recovery.md", @@ -2162,7 +2146,6 @@ "x-appwrite": { "method": "updateRecovery", "group": "recovery", - "weight": 39, "cookies": false, "type": "", "demo": "account\/update-recovery.md", @@ -2247,7 +2230,6 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 11, "cookies": false, "type": "", "demo": "account\/list-sessions.md", @@ -2292,7 +2274,6 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 12, "cookies": false, "type": "", "demo": "account\/delete-sessions.md", @@ -2346,7 +2327,6 @@ "x-appwrite": { "method": "createAnonymousSession", "group": "sessions", - "weight": 17, "cookies": false, "type": "", "demo": "account\/create-anonymous-session.md", @@ -2400,7 +2380,6 @@ "x-appwrite": { "method": "createEmailPasswordSession", "group": "sessions", - "weight": 16, "cookies": false, "type": "", "demo": "account\/create-email-password-session.md", @@ -2481,7 +2460,6 @@ "x-appwrite": { "method": "updateMagicURLSession", "group": "sessions", - "weight": 26, "cookies": false, "type": "", "demo": "account\/update-magic-url-session.md", @@ -2564,7 +2542,6 @@ "x-appwrite": { "method": "updatePhoneSession", "group": "sessions", - "weight": 27, "cookies": false, "type": "", "demo": "account\/update-phone-session.md", @@ -2647,7 +2624,6 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 18, "cookies": false, "type": "", "demo": "account\/create-session.md", @@ -2726,7 +2702,6 @@ "x-appwrite": { "method": "getSession", "group": "sessions", - "weight": 13, "cookies": false, "type": "", "demo": "account\/get-session.md", @@ -2790,7 +2765,6 @@ "x-appwrite": { "method": "updateSession", "group": "sessions", - "weight": 15, "cookies": false, "type": "", "demo": "account\/update-session.md", @@ -2847,7 +2821,6 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 14, "cookies": false, "type": "", "demo": "account\/delete-session.md", @@ -2913,7 +2886,6 @@ "x-appwrite": { "method": "updateStatus", "group": "account", - "weight": 37, "cookies": false, "type": "", "demo": "account\/update-status.md", @@ -2967,7 +2939,6 @@ "x-appwrite": { "method": "createEmailToken", "group": "tokens", - "weight": 25, "cookies": false, "type": "", "demo": "account\/create-email-token.md", @@ -3018,6 +2989,7 @@ "phrase": { "type": "boolean", "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "default": false, "x-example": false } }, @@ -3055,7 +3027,6 @@ "x-appwrite": { "method": "createMagicURLToken", "group": "tokens", - "weight": 24, "cookies": false, "type": "", "demo": "account\/create-magic-url-token.md", @@ -3106,12 +3077,14 @@ "url": { "type": "string", "description": "URL to redirect the user back to your app from the magic URL login. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", + "default": "", "x-example": "https:\/\/example.com", "format": "url" }, "phrase": { "type": "boolean", "description": "Toggle for security phrase. If enabled, email will be send with a randomly generated phrase and the phrase will also be included in the response. Confirming phrases match increases the security of your authentication flow.", + "default": false, "x-example": false } }, @@ -3142,7 +3115,6 @@ "x-appwrite": { "method": "createOAuth2Token", "group": "tokens", - "weight": 23, "cookies": false, "type": "webAuth", "demo": "account\/create-o-auth-2-token.md", @@ -3223,8 +3195,7 @@ "zoho", "zoom" ], - "x-enum-name": "OAuthProvider", - "x-enum-keys": [] + "x-enum-name": "OAuthProvider" }, "in": "path" }, @@ -3292,7 +3263,6 @@ "x-appwrite": { "method": "createPhoneToken", "group": "tokens", - "weight": 28, "cookies": false, "type": "", "demo": "account\/create-phone-token.md", @@ -3375,7 +3345,6 @@ "x-appwrite": { "method": "createEmailVerification", "group": "verification", - "weight": 40, "cookies": false, "type": "", "demo": "account\/create-email-verification.md", @@ -3501,7 +3470,6 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "verification", - "weight": 41, "cookies": false, "type": "", "demo": "account\/update-email-verification.md", @@ -3638,7 +3606,6 @@ "x-appwrite": { "method": "createPhoneVerification", "group": "verification", - "weight": 42, "cookies": false, "type": "", "demo": "account\/create-phone-verification.md", @@ -3693,7 +3660,6 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "verification", - "weight": 43, "cookies": false, "type": "", "demo": "account\/update-phone-verification.md", @@ -3772,7 +3738,6 @@ "x-appwrite": { "method": "listEvents", "group": null, - "weight": 1206, "cookies": false, "type": "", "demo": "activities\/list-events.md", @@ -3836,7 +3801,6 @@ "x-appwrite": { "method": "getEvent", "group": "events", - "weight": 1207, "cookies": false, "type": "", "demo": "activities\/get-event.md", @@ -3893,7 +3857,6 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 176, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -4023,7 +3986,6 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 175, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -4159,7 +4121,6 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 179, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -4221,7 +4182,6 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 177, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -4713,7 +4673,6 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 178, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -4799,7 +4758,6 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 181, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -4895,7 +4853,6 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 180, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -4991,7 +4948,6 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 182, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -5091,8 +5047,7 @@ "light", "dark" ], - "x-enum-name": null, - "x-enum-keys": [], + "x-enum-name": "BrowserTheme", "default": "light" }, "in": "query" @@ -5136,7 +5091,7 @@ "required": false, "schema": { "type": "string", - "x-example": "america\/new_york", + "x-example": "America\/New_York", "enum": [ "africa\/abidjan", "africa\/accra", @@ -5558,9 +5513,7 @@ "pacific\/wallis", "utc" ], - "x-enum-name": null, - "x-enum-keys": [], - "default": "" + "x-enum-name": "Timezone" }, "in": "query" }, @@ -5641,8 +5594,7 @@ "web-share", "xr-spatial-tracking" ], - "x-enum-name": "BrowserPermission", - "x-enum-keys": [] + "x-enum-name": "BrowserPermission" }, "x-example": "[\"geolocation\",\"notifications\"]", "default": [] @@ -5713,9 +5665,7 @@ "avif", "gif" ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "" + "x-enum-name": "ImageFormat" }, "in": "query" } @@ -5746,7 +5696,6 @@ "x-appwrite": { "method": "listArchives", "group": null, - "weight": 1075, "cookies": false, "type": "", "demo": "backups\/list-archives.md", @@ -5811,7 +5760,6 @@ "x-appwrite": { "method": "createArchive", "group": null, - "weight": 1076, "cookies": false, "type": "", "demo": "backups\/create-archive.md", @@ -5857,8 +5805,7 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "resourceId": { @@ -5901,7 +5848,6 @@ "x-appwrite": { "method": "getArchive", "group": null, - "weight": 1074, "cookies": false, "type": "", "demo": "backups\/get-archive.md", @@ -5956,7 +5902,6 @@ "x-appwrite": { "method": "deleteArchive", "group": null, - "weight": 1077, "cookies": false, "type": "", "demo": "backups\/delete-archive.md", @@ -6020,7 +5965,6 @@ "x-appwrite": { "method": "listPolicies", "group": null, - "weight": 1070, "cookies": false, "type": "", "demo": "backups\/list-policies.md", @@ -6088,7 +6032,6 @@ "x-appwrite": { "method": "createPolicy", "group": null, - "weight": 1071, "cookies": false, "type": "", "demo": "backups\/create-policy.md", @@ -6131,6 +6074,7 @@ "name": { "type": "string", "description": "Policy name. Max length: 128 chars.", + "default": "", "x-example": "<NAME>" }, "services": { @@ -6147,8 +6091,7 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "resourceId": { @@ -6160,6 +6103,7 @@ "enabled": { "type": "boolean", "description": "Is policy enabled? When set to 'disabled', no backups will be taken", + "default": true, "x-example": false }, "retention": { @@ -6210,7 +6154,6 @@ "x-appwrite": { "method": "getPolicy", "group": null, - "weight": 1069, "cookies": false, "type": "", "demo": "backups\/get-policy.md", @@ -6275,7 +6218,6 @@ "x-appwrite": { "method": "updatePolicy", "group": null, - "weight": 1072, "cookies": false, "type": "", "demo": "backups\/update-policy.md", @@ -6368,7 +6310,6 @@ "x-appwrite": { "method": "deletePolicy", "group": null, - "weight": 1073, "cookies": false, "type": "", "demo": "backups\/delete-policy.md", @@ -6435,7 +6376,6 @@ "x-appwrite": { "method": "createRestoration", "group": null, - "weight": 1080, "cookies": false, "type": "", "demo": "backups\/create-restoration.md", @@ -6486,18 +6426,19 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "newResourceId": { "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": "", "x-example": "<NEW_RESOURCE_ID>" }, "newResourceName": { "type": "string", "description": "Database name. Max length: 128 chars.", + "default": "", "x-example": "<NEW_RESOURCE_NAME>" } }, @@ -6535,7 +6476,6 @@ "x-appwrite": { "method": "listRestorations", "group": null, - "weight": 1079, "cookies": false, "type": "", "demo": "backups\/list-restorations.md", @@ -6602,7 +6542,6 @@ "x-appwrite": { "method": "getRestoration", "group": null, - "weight": 1078, "cookies": false, "type": "", "demo": "backups\/get-restoration.md", @@ -6666,7 +6605,6 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 704, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -6787,7 +6725,6 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 700, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -6869,6 +6806,7 @@ "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 } }, @@ -6906,7 +6844,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 774, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -6975,7 +6912,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 770, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -7014,6 +6950,7 @@ "ttl": { "type": "integer", "description": "Seconds before the transaction expires.", + "default": 300, "x-example": 60, "format": "int32" } @@ -7048,7 +6985,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 771, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -7114,7 +7050,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 772, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -7165,11 +7100,13 @@ "commit": { "type": "boolean", "description": "Commit transaction?", + "default": false, "x-example": false }, "rollback": { "type": "boolean", "description": "Rollback transaction?", + "default": false, "x-example": false } } @@ -7194,7 +7131,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 773, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -7262,7 +7198,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 775, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -7313,6 +7248,7 @@ "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" @@ -7349,7 +7285,6 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 701, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -7445,7 +7380,6 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 702, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -7533,6 +7467,7 @@ "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 } } @@ -7557,7 +7492,6 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 703, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -7654,7 +7588,6 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 712, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -7755,7 +7688,6 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 708, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -7825,16 +7757,19 @@ "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), 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" @@ -7843,6 +7778,7 @@ "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" @@ -7883,7 +7819,6 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 709, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -7959,7 +7894,6 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 710, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -8034,16 +7968,19 @@ "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 }, "purge": { "type": "boolean", "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "default": false, "x-example": false } } @@ -8068,7 +8005,6 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 711, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -8146,7 +8082,6 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 729, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -8248,7 +8183,6 @@ "x-appwrite": { "method": "createBigIntAttribute", "group": "attributes", - "weight": 742, "cookies": false, "type": "", "demo": "databases\/create-big-int-attribute.md", @@ -8340,6 +8274,7 @@ "array": { "type": "boolean", "description": "Is attribute an array?", + "default": false, "x-example": false } }, @@ -8377,7 +8312,6 @@ "x-appwrite": { "method": "updateBigIntAttribute", "group": "attributes", - "weight": 743, "cookies": false, "type": "", "demo": "databases\/update-big-int-attribute.md", @@ -8511,7 +8445,6 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 730, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -8588,6 +8521,7 @@ "array": { "type": "boolean", "description": "Is attribute an array?", + "default": false, "x-example": false } }, @@ -8625,7 +8559,6 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 731, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -8744,7 +8677,6 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 732, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -8822,6 +8754,7 @@ "array": { "type": "boolean", "description": "Is attribute an array?", + "default": false, "x-example": false } }, @@ -8859,7 +8792,6 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 733, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -8979,7 +8911,6 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 734, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -9057,6 +8988,7 @@ "array": { "type": "boolean", "description": "Is attribute an array?", + "default": false, "x-example": false } }, @@ -9094,7 +9026,6 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 735, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -9214,7 +9145,6 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 736, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -9299,6 +9229,7 @@ "array": { "type": "boolean", "description": "Is attribute an array?", + "default": false, "x-example": false } }, @@ -9337,7 +9268,6 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 737, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -9465,7 +9395,6 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 738, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -9557,6 +9486,7 @@ "array": { "type": "boolean", "description": "Is attribute an array?", + "default": false, "x-example": false } }, @@ -9594,7 +9524,6 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 739, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -9728,7 +9657,6 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 740, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -9820,6 +9748,7 @@ "array": { "type": "boolean", "description": "Is attribute an array?", + "default": false, "x-example": false } }, @@ -9857,7 +9786,6 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 741, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -9991,7 +9919,6 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 744, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -10068,6 +9995,7 @@ "array": { "type": "boolean", "description": "Is attribute an array?", + "default": false, "x-example": false } }, @@ -10105,7 +10033,6 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 745, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -10224,7 +10151,6 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 746, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -10340,7 +10266,6 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 747, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -10465,7 +10390,6 @@ "x-appwrite": { "method": "createLongtextAttribute", "group": "attributes", - "weight": 764, "cookies": false, "type": "", "demo": "databases\/create-longtext-attribute.md", @@ -10538,11 +10462,13 @@ "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 } }, @@ -10580,7 +10506,6 @@ "x-appwrite": { "method": "updateLongtextAttribute", "group": "attributes", - "weight": 765, "cookies": false, "type": "", "demo": "databases\/update-longtext-attribute.md", @@ -10695,7 +10620,6 @@ "x-appwrite": { "method": "createMediumtextAttribute", "group": "attributes", - "weight": 762, "cookies": false, "type": "", "demo": "databases\/create-mediumtext-attribute.md", @@ -10768,11 +10692,13 @@ "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 } }, @@ -10810,7 +10736,6 @@ "x-appwrite": { "method": "updateMediumtextAttribute", "group": "attributes", - "weight": 763, "cookies": false, "type": "", "demo": "databases\/update-mediumtext-attribute.md", @@ -10925,7 +10850,6 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 748, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -11041,7 +10965,6 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 749, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -11166,7 +11089,6 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 750, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -11282,7 +11204,6 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 751, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -11407,7 +11328,6 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 752, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -11480,12 +11400,12 @@ "manyToMany", "oneToMany" ], - "x-enum-name": "RelationshipType", - "x-enum-keys": [] + "x-enum-name": "RelationshipType" }, "twoWay": { "type": "boolean", "description": "Is Two Way?", + "default": false, "x-example": false }, "key": { @@ -11503,14 +11423,14 @@ "onDelete": { "type": "string", "description": "Constraints option", + "default": "restrict", "x-example": "cascade", "enum": [ "cascade", "restrict", "setNull" ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [] + "x-enum-name": "RelationMutate" } }, "required": [ @@ -11547,7 +11467,6 @@ "x-appwrite": { "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 753, "cookies": false, "type": "", "demo": "databases\/update-relationship-attribute.md", @@ -11623,8 +11542,7 @@ "restrict", "setNull" ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [] + "x-enum-name": "RelationMutate" }, "newKey": { "type": "string", @@ -11663,7 +11581,6 @@ "x-appwrite": { "method": "createStringAttribute", "group": "attributes", - "weight": 754, "cookies": false, "type": "", "demo": "databases\/create-string-attribute.md", @@ -11746,11 +11663,13 @@ "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 } }, @@ -11789,7 +11708,6 @@ "x-appwrite": { "method": "updateStringAttribute", "group": "attributes", - "weight": 755, "cookies": false, "type": "", "demo": "databases\/update-string-attribute.md", @@ -11915,7 +11833,6 @@ "x-appwrite": { "method": "createTextAttribute", "group": "attributes", - "weight": 760, "cookies": false, "type": "", "demo": "databases\/create-text-attribute.md", @@ -11988,11 +11905,13 @@ "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 } }, @@ -12030,7 +11949,6 @@ "x-appwrite": { "method": "updateTextAttribute", "group": "attributes", - "weight": 761, "cookies": false, "type": "", "demo": "databases\/update-text-attribute.md", @@ -12145,7 +12063,6 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 756, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -12223,6 +12140,7 @@ "array": { "type": "boolean", "description": "Is attribute an array?", + "default": false, "x-example": false } }, @@ -12260,7 +12178,6 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 757, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -12380,7 +12297,6 @@ "x-appwrite": { "method": "createVarcharAttribute", "group": "attributes", - "weight": 758, "cookies": false, "type": "", "demo": "databases\/create-varchar-attribute.md", @@ -12459,11 +12375,13 @@ "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 } }, @@ -12502,7 +12420,6 @@ "x-appwrite": { "method": "updateVarcharAttribute", "group": "attributes", - "weight": 759, "cookies": false, "type": "", "demo": "databases\/update-varchar-attribute.md", @@ -12706,7 +12623,6 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 727, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -12784,7 +12700,6 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 728, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -12871,7 +12786,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 918, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -12997,7 +12911,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 715, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -13133,11 +13046,13 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", "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": { @@ -13152,6 +13067,7 @@ "documents": { "type": "array", "description": "Array of documents data as JSON objects.", + "default": [], "x-example": null, "items": { "type": "object" @@ -13192,7 +13108,6 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 720, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -13331,7 +13246,6 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 718, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -13392,11 +13306,13 @@ "data": { "type": "object", "description": "Document data as JSON object. Include only attribute 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" @@ -13437,7 +13353,6 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 722, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -13498,6 +13413,7 @@ "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" @@ -13540,7 +13456,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 716, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -13653,7 +13568,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 719, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -13765,6 +13679,7 @@ "data": { "type": "object", "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", + "default": {}, "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, "permissions": { @@ -13811,7 +13726,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 717, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -13886,6 +13800,7 @@ "data": { "type": "object", "description": "Document data as JSON object. Include only attribute 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": { @@ -13925,7 +13840,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 721, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -14034,7 +13948,6 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 726, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -14118,6 +14031,7 @@ "value": { "type": "number", "description": "Value to increment the attribute by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -14165,7 +14079,6 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 725, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -14249,6 +14162,7 @@ "value": { "type": "number", "description": "Value to increment the attribute by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -14296,7 +14210,6 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 769, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -14396,7 +14309,6 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 766, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -14469,8 +14381,7 @@ "unique", "spatial" ], - "x-enum-name": "DatabasesIndexType", - "x-enum-keys": [] + "x-enum-name": "DatabasesIndexType" }, "attributes": { "type": "array", @@ -14483,6 +14394,7 @@ "orders": { "type": "array", "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], "x-example": null, "items": { "type": "string", @@ -14490,13 +14402,13 @@ "asc", "desc" ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] + "x-enum-name": "OrderBy" } }, "lengths": { "type": "array", "description": "Length of index. Maximum of 100", + "default": [], "x-example": null, "items": { "type": "integer" @@ -14538,7 +14450,6 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 767, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -14616,7 +14527,6 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 768, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -14703,7 +14613,6 @@ "x-appwrite": { "method": "list", "group": "documentsdb", - "weight": 855, "cookies": false, "type": "", "demo": "documentsdb\/list.md", @@ -14743,17 +14652,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.", @@ -14790,7 +14688,6 @@ "x-appwrite": { "method": "create", "group": "documentsdb", - "weight": 851, "cookies": false, "type": "", "demo": "documentsdb\/create.md", @@ -14835,6 +14732,7 @@ "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 } }, @@ -14872,7 +14770,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 883, "cookies": false, "type": "", "demo": "documentsdb\/list-transactions.md", @@ -14941,7 +14838,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 879, "cookies": false, "type": "", "demo": "documentsdb\/create-transaction.md", @@ -14980,6 +14876,7 @@ "ttl": { "type": "integer", "description": "Seconds before the transaction expires.", + "default": 300, "x-example": 60, "format": "int32" } @@ -15014,7 +14911,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 880, "cookies": false, "type": "", "demo": "documentsdb\/get-transaction.md", @@ -15080,7 +14976,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 881, "cookies": false, "type": "", "demo": "documentsdb\/update-transaction.md", @@ -15131,11 +15026,13 @@ "commit": { "type": "boolean", "description": "Commit transaction?", + "default": false, "x-example": false }, "rollback": { "type": "boolean", "description": "Rollback transaction?", + "default": false, "x-example": false } } @@ -15160,7 +15057,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 882, "cookies": false, "type": "", "demo": "documentsdb\/delete-transaction.md", @@ -15228,7 +15124,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 884, "cookies": false, "type": "", "demo": "documentsdb\/create-operations.md", @@ -15278,6 +15173,7 @@ "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" @@ -15314,7 +15210,6 @@ "x-appwrite": { "method": "get", "group": "documentsdb", - "weight": 852, "cookies": false, "type": "", "demo": "documentsdb\/get.md", @@ -15376,7 +15271,6 @@ "x-appwrite": { "method": "update", "group": "documentsdb", - "weight": 853, "cookies": false, "type": "", "demo": "documentsdb\/update.md", @@ -15428,6 +15322,7 @@ "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 } }, @@ -15455,7 +15350,6 @@ "x-appwrite": { "method": "delete", "group": "documentsdb", - "weight": 854, "cookies": false, "type": "", "demo": "documentsdb\/delete.md", @@ -15519,7 +15413,6 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 862, "cookies": false, "type": "", "demo": "documentsdb\/list-collections.md", @@ -15616,7 +15509,6 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 858, "cookies": false, "type": "", "demo": "documentsdb\/create-collection.md", @@ -15682,16 +15574,19 @@ "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" @@ -15700,6 +15595,7 @@ "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" @@ -15740,7 +15636,6 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 859, "cookies": false, "type": "", "demo": "documentsdb\/get-collection.md", @@ -15812,7 +15707,6 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 860, "cookies": false, "type": "", "demo": "documentsdb\/update-collection.md", @@ -15882,16 +15776,19 @@ "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 }, "purge": { "type": "boolean", "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "default": false, "x-example": false } }, @@ -15919,7 +15816,6 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 861, "cookies": false, "type": "", "demo": "documentsdb\/delete-collection.md", @@ -15993,7 +15889,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 919, "cookies": false, "type": "", "demo": "documentsdb\/list-documents.md", @@ -16115,7 +16010,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 868, "cookies": false, "type": "", "demo": "documentsdb\/create-document.md", @@ -16237,11 +16131,13 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", "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": { @@ -16255,6 +16151,7 @@ "documents": { "type": "array", "description": "Array of documents data as JSON objects.", + "default": [], "x-example": null, "items": { "type": "object" @@ -16294,7 +16191,6 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 873, "cookies": false, "type": "", "demo": "documentsdb\/upsert-documents.md", @@ -16424,7 +16320,6 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 871, "cookies": false, "type": "", "demo": "documentsdb\/update-documents.md", @@ -16481,11 +16376,13 @@ "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" @@ -16525,7 +16422,6 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 875, "cookies": false, "type": "", "demo": "documentsdb\/delete-documents.md", @@ -16582,6 +16478,7 @@ "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" @@ -16623,7 +16520,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 869, "cookies": false, "type": "", "demo": "documentsdb\/get-document.md", @@ -16732,7 +16628,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 872, "cookies": false, "type": "", "demo": "documentsdb\/upsert-document.md", @@ -16836,6 +16731,7 @@ "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": { @@ -16880,7 +16776,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 870, "cookies": false, "type": "", "demo": "documentsdb\/update-document.md", @@ -16951,6 +16846,7 @@ "data": { "type": "object", "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "default": {}, "x-example": "{}" }, "permissions": { @@ -16988,7 +16884,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 874, "cookies": false, "type": "", "demo": "documentsdb\/delete-document.md", @@ -17092,7 +16987,6 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 878, "cookies": false, "type": "", "demo": "documentsdb\/decrement-document-attribute.md", @@ -17172,6 +17066,7 @@ "value": { "type": "number", "description": "Value to decrement the attribute by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -17217,7 +17112,6 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 877, "cookies": false, "type": "", "demo": "documentsdb\/increment-document-attribute.md", @@ -17297,6 +17191,7 @@ "value": { "type": "number", "description": "Value to increment the attribute by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -17342,7 +17237,6 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 867, "cookies": false, "type": "", "demo": "documentsdb\/list-indexes.md", @@ -17438,7 +17332,6 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 864, "cookies": false, "type": "", "demo": "documentsdb\/create-index.md", @@ -17506,8 +17399,7 @@ "fulltext", "unique" ], - "x-enum-name": "DocumentsDBIndexType", - "x-enum-keys": [] + "x-enum-name": "DocumentsDBIndexType" }, "attributes": { "type": "array", @@ -17520,6 +17412,7 @@ "orders": { "type": "array", "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], "x-example": null, "items": { "type": "string", @@ -17527,13 +17420,13 @@ "asc", "desc" ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] + "x-enum-name": "OrderBy" } }, "lengths": { "type": "array", "description": "Length of index. Maximum of 100", + "default": [], "x-example": null, "items": { "type": "integer" @@ -17575,7 +17468,6 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 865, "cookies": false, "type": "", "demo": "documentsdb\/get-index.md", @@ -17649,7 +17541,6 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 866, "cookies": false, "type": "", "demo": "documentsdb\/delete-index.md", @@ -17732,7 +17623,6 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 425, "cookies": false, "type": "", "demo": "functions\/list.md", @@ -17818,7 +17708,6 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 921, "cookies": false, "type": "", "demo": "functions\/create.md", @@ -17916,6 +17805,7 @@ "dart-3.9", "dart-3.10", "dart-3.11", + "dart-3.12", "dotnet-6.0", "dotnet-7.0", "dotnet-8.0", @@ -17955,14 +17845,15 @@ "flutter-3.32", "flutter-3.35", "flutter-3.38", - "flutter-3.41" + "flutter-3.41", + "flutter-3.44" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "FunctionRuntime" }, "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" @@ -17971,6 +17862,7 @@ "events": { "type": "array", "description": "Events list. Maximum of 100 events are allowed.", + "default": [], "x-example": null, "items": { "type": "string" @@ -17979,37 +17871,44 @@ "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", @@ -18109,48 +18008,73 @@ "events.read", "usage.read" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "ProjectKeyScopes" } }, "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>" }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, "buildSpecification": { "type": "string", "description": "Build specification for the function deployments.", + "default": {}, "x-example": null }, "runtimeSpecification": { "type": "string", "description": "Runtime specification for the function executions.", + "default": {}, "x-example": null }, "deploymentRetention": { "type": "integer", "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, "x-example": 0, "format": "int32" } @@ -18190,7 +18114,6 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 427, "cookies": false, "type": "", "demo": "functions\/list-runtimes.md", @@ -18241,7 +18164,6 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 428, "cookies": false, "type": "", "demo": "functions\/list-specifications.md", @@ -18292,7 +18214,6 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 423, "cookies": false, "type": "", "demo": "functions\/get.md", @@ -18353,7 +18274,6 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 922, "cookies": false, "type": "", "demo": "functions\/update.md", @@ -18458,6 +18378,7 @@ "dart-3.9", "dart-3.10", "dart-3.11", + "dart-3.12", "dotnet-6.0", "dotnet-7.0", "dotnet-8.0", @@ -18497,14 +18418,15 @@ "flutter-3.32", "flutter-3.35", "flutter-3.38", - "flutter-3.41" + "flutter-3.41", + "flutter-3.44" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "FunctionRuntime" }, "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" @@ -18513,6 +18435,7 @@ "events": { "type": "array", "description": "Events list. Maximum of 100 events are allowed.", + "default": [], "x-example": null, "items": { "type": "string" @@ -18521,37 +18444,44 @@ "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", @@ -18651,13 +18581,13 @@ "events.read", "usage.read" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "ProjectKeyScopes" } }, "installationId": { "type": "string", "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", + "default": "", "x-example": "<INSTALLATION_ID>" }, "providerRepositoryId": { @@ -18669,31 +18599,55 @@ "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>" }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, "buildSpecification": { "type": "string", "description": "Build specification for the function deployments.", + "default": {}, "x-example": null }, "runtimeSpecification": { "type": "string", "description": "Runtime specification for the function executions.", + "default": {}, "x-example": null }, "deploymentRetention": { "type": "integer", "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, "x-example": 0, "format": "int32" } @@ -18722,7 +18676,6 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 426, "cookies": false, "type": "", "demo": "functions\/delete.md", @@ -18785,7 +18738,6 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 431, "cookies": false, "type": "", "demo": "functions\/update-function-deployment.md", @@ -18867,7 +18819,6 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 432, "cookies": false, "type": "", "demo": "functions\/list-deployments.md", @@ -18963,7 +18914,6 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 429, "cookies": false, "type": "upload", "demo": "functions\/create-deployment.md", @@ -19064,7 +19014,6 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 437, "cookies": false, "type": "", "demo": "functions\/create-duplicate-deployment.md", @@ -19115,6 +19064,7 @@ "buildId": { "type": "string", "description": "Build unique ID.", + "default": "", "x-example": "<BUILD_ID>" } }, @@ -19151,7 +19101,6 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 434, "cookies": false, "type": "", "demo": "functions\/create-template-deployment.md", @@ -19218,8 +19167,7 @@ "branch", "tag" ], - "x-enum-name": "TemplateReferenceType", - "x-enum-keys": [] + "x-enum-name": "TemplateReferenceType" }, "reference": { "type": "string", @@ -19229,6 +19177,7 @@ "activate": { "type": "boolean", "description": "Automatically activate the deployment when it is finished building.", + "default": false, "x-example": false } }, @@ -19269,7 +19218,6 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 435, "cookies": false, "type": "", "demo": "functions\/create-vcs-deployment.md", @@ -19320,8 +19268,7 @@ "branch", "commit" ], - "x-enum-name": "VCSReferenceType", - "x-enum-keys": [] + "x-enum-name": "VCSReferenceType" }, "reference": { "type": "string", @@ -19331,6 +19278,7 @@ "activate": { "type": "boolean", "description": "Automatically activate the deployment when it is finished building.", + "default": false, "x-example": false } }, @@ -19368,7 +19316,6 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 430, "cookies": false, "type": "", "demo": "functions\/get-deployment.md", @@ -19432,7 +19379,6 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 433, "cookies": false, "type": "", "demo": "functions\/delete-deployment.md", @@ -19498,7 +19444,6 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 436, "cookies": false, "type": "location", "demo": "functions\/get-deployment-download.md", @@ -19558,7 +19503,6 @@ "output" ], "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], "default": "source" }, "in": "query" @@ -19590,7 +19534,6 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 438, "cookies": false, "type": "", "demo": "functions\/update-deployment-status.md", @@ -19663,7 +19606,6 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 441, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -19755,7 +19697,6 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 439, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -19808,21 +19749,25 @@ "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", @@ -19833,12 +19778,12 @@ "OPTIONS", "HEAD" ], - "x-enum-name": "ExecutionMethod", - "x-enum-keys": [] + "x-enum-name": "ExecutionMethod" }, "headers": { "type": "object", "description": "HTTP headers of execution. Defaults to empty.", + "default": {}, "x-example": "{}" }, "scheduledAt": { @@ -19878,7 +19823,6 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 440, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -19949,7 +19893,6 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 442, "cookies": false, "type": "", "demo": "functions\/delete-execution.md", @@ -20025,7 +19968,6 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 447, "cookies": false, "type": "", "demo": "functions\/list-variables.md", @@ -20110,7 +20052,6 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 923, "cookies": false, "type": "", "demo": "functions\/create-variable.md", @@ -20171,6 +20112,7 @@ "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 } }, @@ -20209,7 +20151,6 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 446, "cookies": false, "type": "", "demo": "functions\/get-variable.md", @@ -20280,7 +20221,6 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 448, "cookies": false, "type": "", "demo": "functions\/update-variable.md", @@ -20373,7 +20313,6 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 449, "cookies": false, "type": "", "demo": "functions\/delete-variable.md", @@ -20446,7 +20385,6 @@ "x-appwrite": { "method": "query", "group": "graphql", - "weight": 116, "cookies": false, "type": "graphql", "demo": "graphql\/query.md", @@ -20502,7 +20440,6 @@ "x-appwrite": { "method": "mutation", "group": "graphql", - "weight": 115, "cookies": false, "type": "graphql", "demo": "graphql\/mutation.md", @@ -20558,7 +20495,6 @@ "x-appwrite": { "method": "get", "group": "health", - "weight": 452, "cookies": false, "type": "", "demo": "health\/get.md", @@ -20610,7 +20546,6 @@ "x-appwrite": { "method": "getAntivirus", "group": "health", - "weight": 461, "cookies": false, "type": "", "demo": "health\/get-antivirus.md", @@ -20662,7 +20597,6 @@ "x-appwrite": { "method": "getCache", "group": "health", - "weight": 455, "cookies": false, "type": "", "demo": "health\/get-cache.md", @@ -20714,7 +20648,6 @@ "x-appwrite": { "method": "getCertificate", "group": "health", - "weight": 458, "cookies": false, "type": "", "demo": "health\/get-certificate.md", @@ -20777,7 +20710,6 @@ "x-appwrite": { "method": "getConsolePausing", "group": null, - "weight": 1063, "cookies": false, "type": "", "demo": "health\/get-console-pausing.md", @@ -20853,7 +20785,6 @@ "x-appwrite": { "method": "getDB", "group": "health", - "weight": 454, "cookies": false, "type": "", "demo": "health\/get-db.md", @@ -20905,7 +20836,6 @@ "x-appwrite": { "method": "getPubSub", "group": "health", - "weight": 456, "cookies": false, "type": "", "demo": "health\/get-pub-sub.md", @@ -20957,7 +20887,6 @@ "x-appwrite": { "method": "getQueueAudits", "group": "queue", - "weight": 462, "cookies": false, "type": "", "demo": "health\/get-queue-audits.md", @@ -21022,7 +20951,6 @@ "x-appwrite": { "method": "getQueueBillingProjectAggregation", "group": null, - "weight": 1059, "cookies": false, "type": "", "demo": "health\/get-queue-billing-project-aggregation.md", @@ -21087,7 +21015,6 @@ "x-appwrite": { "method": "getQueueBillingTeamAggregation", "group": null, - "weight": 1058, "cookies": false, "type": "", "demo": "health\/get-queue-billing-team-aggregation.md", @@ -21152,7 +21079,6 @@ "x-appwrite": { "method": "getQueueBuilds", "group": "queue", - "weight": 466, "cookies": false, "type": "", "demo": "health\/get-queue-builds.md", @@ -21217,7 +21143,6 @@ "x-appwrite": { "method": "getQueuePriorityBuilds", "group": null, - "weight": 1060, "cookies": false, "type": "", "demo": "health\/get-queue-priority-builds.md", @@ -21282,7 +21207,6 @@ "x-appwrite": { "method": "getQueueCertificates", "group": "queue", - "weight": 465, "cookies": false, "type": "", "demo": "health\/get-queue-certificates.md", @@ -21347,7 +21271,6 @@ "x-appwrite": { "method": "getQueueDatabases", "group": "queue", - "weight": 467, "cookies": false, "type": "", "demo": "health\/get-queue-databases.md", @@ -21423,7 +21346,6 @@ "x-appwrite": { "method": "getQueueDeletes", "group": "queue", - "weight": 468, "cookies": false, "type": "", "demo": "health\/get-queue-deletes.md", @@ -21488,7 +21410,6 @@ "x-appwrite": { "method": "getFailedJobs", "group": "queue", - "weight": 475, "cookies": false, "type": "", "demo": "health\/get-failed-jobs.md", @@ -21537,8 +21458,7 @@ "v1-messaging", "v1-migrations" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "HealthQueueName" }, "in": "path" }, @@ -21580,7 +21500,6 @@ "x-appwrite": { "method": "getQueueFunctions", "group": "queue", - "weight": 472, "cookies": false, "type": "", "demo": "health\/get-queue-functions.md", @@ -21645,7 +21564,6 @@ "x-appwrite": { "method": "getQueueLogs", "group": "queue", - "weight": 464, "cookies": false, "type": "", "demo": "health\/get-queue-logs.md", @@ -21710,7 +21628,6 @@ "x-appwrite": { "method": "getQueueMails", "group": "queue", - "weight": 469, "cookies": false, "type": "", "demo": "health\/get-queue-mails.md", @@ -21775,7 +21692,6 @@ "x-appwrite": { "method": "getQueueMessaging", "group": "queue", - "weight": 470, "cookies": false, "type": "", "demo": "health\/get-queue-messaging.md", @@ -21840,7 +21756,6 @@ "x-appwrite": { "method": "getQueueMigrations", "group": "queue", - "weight": 471, "cookies": false, "type": "", "demo": "health\/get-queue-migrations.md", @@ -21905,7 +21820,6 @@ "x-appwrite": { "method": "getQueueRegionManager", "group": null, - "weight": 1061, "cookies": false, "type": "", "demo": "health\/get-queue-region-manager.md", @@ -21970,7 +21884,6 @@ "x-appwrite": { "method": "getQueueStatsResources", "group": "queue", - "weight": 473, "cookies": false, "type": "", "demo": "health\/get-queue-stats-resources.md", @@ -22035,7 +21948,6 @@ "x-appwrite": { "method": "getQueueUsage", "group": "queue", - "weight": 474, "cookies": false, "type": "", "demo": "health\/get-queue-usage.md", @@ -22100,7 +22012,6 @@ "x-appwrite": { "method": "getQueueThreats", "group": null, - "weight": 1062, "cookies": false, "type": "", "demo": "health\/get-queue-threats.md", @@ -22165,7 +22076,6 @@ "x-appwrite": { "method": "getQueueWebhooks", "group": "queue", - "weight": 463, "cookies": false, "type": "", "demo": "health\/get-queue-webhooks.md", @@ -22230,7 +22140,6 @@ "x-appwrite": { "method": "getStorage", "group": "storage", - "weight": 460, "cookies": false, "type": "", "demo": "health\/get-storage.md", @@ -22282,7 +22191,6 @@ "x-appwrite": { "method": "getStorageLocal", "group": "storage", - "weight": 459, "cookies": false, "type": "", "demo": "health\/get-storage-local.md", @@ -22334,7 +22242,6 @@ "x-appwrite": { "method": "getTime", "group": "health", - "weight": 457, "cookies": false, "type": "", "demo": "health\/get-time.md", @@ -22386,7 +22293,6 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 49, "cookies": false, "type": "", "demo": "locale\/get.md", @@ -22442,7 +22348,6 @@ "x-appwrite": { "method": "listCodes", "group": null, - "weight": 50, "cookies": false, "type": "", "demo": "locale\/list-codes.md", @@ -22498,7 +22403,6 @@ "x-appwrite": { "method": "listContinents", "group": null, - "weight": 54, "cookies": false, "type": "", "demo": "locale\/list-continents.md", @@ -22554,7 +22458,6 @@ "x-appwrite": { "method": "listCountries", "group": null, - "weight": 51, "cookies": false, "type": "", "demo": "locale\/list-countries.md", @@ -22610,7 +22513,6 @@ "x-appwrite": { "method": "listCountriesEU", "group": null, - "weight": 52, "cookies": false, "type": "", "demo": "locale\/list-countries-eu.md", @@ -22666,7 +22568,6 @@ "x-appwrite": { "method": "listCountriesPhones", "group": null, - "weight": 53, "cookies": false, "type": "", "demo": "locale\/list-countries-phones.md", @@ -22722,7 +22623,6 @@ "x-appwrite": { "method": "listCurrencies", "group": null, - "weight": 55, "cookies": false, "type": "", "demo": "locale\/list-currencies.md", @@ -22778,7 +22678,6 @@ "x-appwrite": { "method": "listLanguages", "group": null, - "weight": 56, "cookies": false, "type": "", "demo": "locale\/list-languages.md", @@ -22834,7 +22733,6 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 157, "cookies": false, "type": "", "demo": "messaging\/list-messages.md", @@ -22923,7 +22821,6 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 154, "cookies": false, "type": "", "demo": "messaging\/create-email.md", @@ -22973,6 +22870,7 @@ "topics": { "type": "array", "description": "List of Topic IDs.", + "default": [], "x-example": null, "items": { "type": "string" @@ -22981,6 +22879,7 @@ "users": { "type": "array", "description": "List of User IDs.", + "default": [], "x-example": null, "items": { "type": "string" @@ -22989,6 +22888,7 @@ "targets": { "type": "array", "description": "List of Targets IDs.", + "default": [], "x-example": null, "items": { "type": "string" @@ -22997,6 +22897,7 @@ "cc": { "type": "array", "description": "Array of target IDs to be added as CC.", + "default": [], "x-example": null, "items": { "type": "string" @@ -23005,6 +22906,7 @@ "bcc": { "type": "array", "description": "Array of target IDs to be added as BCC.", + "default": [], "x-example": null, "items": { "type": "string" @@ -23013,6 +22915,7 @@ "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" @@ -23021,11 +22924,13 @@ "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": { @@ -23071,7 +22976,6 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 161, "cookies": false, "type": "", "demo": "messaging\/update-email.md", @@ -23231,7 +23135,6 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 156, "cookies": false, "type": "", "demo": "messaging\/create-push.md", @@ -23271,16 +23174,19 @@ "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" @@ -23289,6 +23195,7 @@ "users": { "type": "array", "description": "List of User IDs.", + "default": [], "x-example": null, "items": { "type": "string" @@ -23297,6 +23204,7 @@ "targets": { "type": "array", "description": "List of Targets IDs.", + "default": [], "x-example": null, "items": { "type": "string" @@ -23311,42 +23219,50 @@ "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": { @@ -23359,23 +23275,25 @@ "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-enum-name": "MessagePriority" } }, "required": [ @@ -23411,7 +23329,6 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 163, "cookies": false, "type": "", "demo": "messaging\/update-push.md", @@ -23577,7 +23494,6 @@ "high" ], "x-enum-name": "MessagePriority", - "x-enum-keys": [], "x-nullable": true } } @@ -23611,7 +23527,6 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 155, "cookies": false, "type": "", "demo": "messaging\/create-sms.md", @@ -23728,6 +23643,7 @@ "topics": { "type": "array", "description": "List of Topic IDs.", + "default": [], "x-example": null, "items": { "type": "string" @@ -23736,6 +23652,7 @@ "users": { "type": "array", "description": "List of User IDs.", + "default": [], "x-example": null, "items": { "type": "string" @@ -23744,6 +23661,7 @@ "targets": { "type": "array", "description": "List of Targets IDs.", + "default": [], "x-example": null, "items": { "type": "string" @@ -23752,6 +23670,7 @@ "draft": { "type": "boolean", "description": "Is message a draft", + "default": false, "x-example": false }, "scheduledAt": { @@ -23796,7 +23715,6 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 162, "cookies": false, "type": "", "demo": "messaging\/update-sms.md", @@ -23987,7 +23905,6 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 160, "cookies": false, "type": "", "demo": "messaging\/get-message.md", @@ -24042,7 +23959,6 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 164, "cookies": false, "type": "", "demo": "messaging\/delete.md", @@ -24106,7 +24022,6 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 158, "cookies": false, "type": "", "demo": "messaging\/list-message-logs.md", @@ -24194,7 +24109,6 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 159, "cookies": false, "type": "", "demo": "messaging\/list-targets.md", @@ -24282,7 +24196,6 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 128, "cookies": false, "type": "", "demo": "messaging\/list-providers.md", @@ -24371,7 +24284,6 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 127, "cookies": false, "type": "", "demo": "messaging\/create-apns-provider.md", @@ -24490,26 +24402,31 @@ "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": { @@ -24553,7 +24470,6 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 141, "cookies": false, "type": "", "demo": "messaging\/update-apns-provider.md", @@ -24672,6 +24588,7 @@ "name": { "type": "string", "description": "Provider name.", + "default": "", "x-example": "<NAME>" }, "enabled": { @@ -24683,21 +24600,25 @@ "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": { @@ -24737,7 +24658,6 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 126, "cookies": false, "type": "", "demo": "messaging\/create-fcm-provider.md", @@ -24892,7 +24812,6 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 140, "cookies": false, "type": "", "demo": "messaging\/update-fcm-provider.md", @@ -25003,6 +24922,7 @@ "name": { "type": "string", "description": "Provider name.", + "default": "", "x-example": "<NAME>" }, "enabled": { @@ -25048,7 +24968,6 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 117, "cookies": false, "type": "", "demo": "messaging\/create-mailgun-provider.md", @@ -25093,11 +25012,13 @@ "apiKey": { "type": "string", "description": "Mailgun API Key.", + "default": "", "x-example": "<API_KEY>" }, "domain": { "type": "string", "description": "Mailgun Domain.", + "default": "", "x-example": "<DOMAIN>" }, "isEuRegion": { @@ -25109,22 +25030,26 @@ "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" }, @@ -25169,7 +25094,6 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 131, "cookies": false, "type": "", "demo": "messaging\/update-mailgun-provider.md", @@ -25216,16 +25140,19 @@ "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": { @@ -25243,22 +25170,26 @@ "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>" } } @@ -25292,7 +25223,6 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 121, "cookies": false, "type": "", "demo": "messaging\/create-msg-91-provider.md", @@ -25337,16 +25267,19 @@ "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": { @@ -25390,7 +25323,6 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 135, "cookies": false, "type": "", "demo": "messaging\/update-msg-91-provider.md", @@ -25437,6 +25369,7 @@ "name": { "type": "string", "description": "Provider name.", + "default": "", "x-example": "<NAME>" }, "enabled": { @@ -25448,16 +25381,19 @@ "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>" } } @@ -25491,7 +25427,6 @@ "x-appwrite": { "method": "createResendProvider", "group": "providers", - "weight": 119, "cookies": false, "type": "", "demo": "messaging\/create-resend-provider.md", @@ -25536,27 +25471,32 @@ "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" }, @@ -25601,7 +25541,6 @@ "x-appwrite": { "method": "updateResendProvider", "group": "providers", - "weight": 133, "cookies": false, "type": "", "demo": "messaging\/update-resend-provider.md", @@ -25648,6 +25587,7 @@ "name": { "type": "string", "description": "Provider name.", + "default": "", "x-example": "<NAME>" }, "enabled": { @@ -25659,27 +25599,32 @@ "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>" } } @@ -25713,7 +25658,6 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 118, "cookies": false, "type": "", "demo": "messaging\/create-sendgrid-provider.md", @@ -25758,27 +25702,32 @@ "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" }, @@ -25823,7 +25772,6 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 132, "cookies": false, "type": "", "demo": "messaging\/update-sendgrid-provider.md", @@ -25870,6 +25818,7 @@ "name": { "type": "string", "description": "Provider name.", + "default": "", "x-example": "<NAME>" }, "enabled": { @@ -25881,27 +25830,32 @@ "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>" } } @@ -25935,7 +25889,6 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 120, "cookies": false, "type": "", "demo": "messaging\/create-smtp-provider.md", @@ -26073,17 +26026,20 @@ "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": { @@ -26095,38 +26051,43 @@ "ssl", "tls" ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [] + "x-enum-name": "SmtpEncryption" }, "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" }, @@ -26172,7 +26133,6 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 134, "cookies": false, "type": "", "demo": "messaging\/update-smtp-provider.md", @@ -26303,11 +26263,13 @@ "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": { @@ -26320,11 +26282,13 @@ "username": { "type": "string", "description": "Authentication username.", + "default": "", "x-example": "<USERNAME>" }, "password": { "type": "string", "description": "Authentication password.", + "default": "", "x-example": "<PASSWORD>" }, "encryption": { @@ -26336,8 +26300,7 @@ "ssl", "tls" ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [] + "x-enum-name": "SmtpEncryption" }, "autoTLS": { "type": "boolean", @@ -26348,27 +26311,32 @@ "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": { @@ -26408,7 +26376,6 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 122, "cookies": false, "type": "", "demo": "messaging\/create-telesign-provider.md", @@ -26453,17 +26420,20 @@ "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": { @@ -26507,7 +26477,6 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 136, "cookies": false, "type": "", "demo": "messaging\/update-telesign-provider.md", @@ -26554,6 +26523,7 @@ "name": { "type": "string", "description": "Provider name.", + "default": "", "x-example": "<NAME>" }, "enabled": { @@ -26565,16 +26535,19 @@ "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>" } } @@ -26608,7 +26581,6 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 123, "cookies": false, "type": "", "demo": "messaging\/create-textmagic-provider.md", @@ -26653,17 +26625,20 @@ "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": { @@ -26707,7 +26682,6 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 137, "cookies": false, "type": "", "demo": "messaging\/update-textmagic-provider.md", @@ -26754,6 +26728,7 @@ "name": { "type": "string", "description": "Provider name.", + "default": "", "x-example": "<NAME>" }, "enabled": { @@ -26765,16 +26740,19 @@ "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>" } } @@ -26808,7 +26786,6 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 124, "cookies": false, "type": "", "demo": "messaging\/create-twilio-provider.md", @@ -26853,17 +26830,20 @@ "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": { @@ -26907,7 +26887,6 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 138, "cookies": false, "type": "", "demo": "messaging\/update-twilio-provider.md", @@ -26954,6 +26933,7 @@ "name": { "type": "string", "description": "Provider name.", + "default": "", "x-example": "<NAME>" }, "enabled": { @@ -26965,16 +26945,19 @@ "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>" } } @@ -27008,7 +26991,6 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 125, "cookies": false, "type": "", "demo": "messaging\/create-vonage-provider.md", @@ -27053,17 +27035,20 @@ "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": { @@ -27107,7 +27092,6 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 139, "cookies": false, "type": "", "demo": "messaging\/update-vonage-provider.md", @@ -27154,6 +27138,7 @@ "name": { "type": "string", "description": "Provider name.", + "default": "", "x-example": "<NAME>" }, "enabled": { @@ -27165,16 +27150,19 @@ "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>" } } @@ -27208,7 +27196,6 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 130, "cookies": false, "type": "", "demo": "messaging\/get-provider.md", @@ -27263,7 +27250,6 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 142, "cookies": false, "type": "", "demo": "messaging\/delete-provider.md", @@ -27327,7 +27313,6 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 129, "cookies": false, "type": "", "demo": "messaging\/list-provider-logs.md", @@ -27415,7 +27400,6 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 151, "cookies": false, "type": "", "demo": "messaging\/list-subscriber-logs.md", @@ -27503,7 +27487,6 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 144, "cookies": false, "type": "", "demo": "messaging\/list-topics.md", @@ -27590,7 +27573,6 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 143, "cookies": false, "type": "", "demo": "messaging\/create-topic.md", @@ -27635,6 +27617,9 @@ "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" @@ -27675,7 +27660,6 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 146, "cookies": false, "type": "", "demo": "messaging\/get-topic.md", @@ -27737,7 +27721,6 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 147, "cookies": false, "type": "", "demo": "messaging\/update-topic.md", @@ -27818,7 +27801,6 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 148, "cookies": false, "type": "", "demo": "messaging\/delete-topic.md", @@ -27882,7 +27864,6 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 145, "cookies": false, "type": "", "demo": "messaging\/list-topic-logs.md", @@ -27970,7 +27951,6 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 150, "cookies": false, "type": "", "demo": "messaging\/list-subscribers.md", @@ -28067,7 +28047,6 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 149, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -28160,7 +28139,6 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 152, "cookies": false, "type": "", "demo": "messaging\/get-subscriber.md", @@ -28225,7 +28203,6 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 153, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -28279,6 +28256,775 @@ ] } }, + "\/organization\/keys": { + "get": { + "summary": "List organization keys", + "operationId": "organizationListKeys", + "tags": [ + "organization" + ], + "description": "Get a list of all API keys from the current organization.", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listKeys", + "group": "keys", + "cookies": false, + "type": "", + "demo": "organization\/list-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "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: 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 organization key", + "operationId": "organizationCreateKey", + "tags": [ + "organization" + ], + "description": "Create a new organization API key.", + "responses": { + "201": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createKey", + "group": "keys", + "cookies": false, + "type": "", + "demo": "organization\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "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": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes" + } + }, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "keyId", + "name", + "scopes" + ] + } + } + } + } + } + }, + "\/organization\/keys\/{keyId}": { + "get": { + "summary": "Get organization key", + "operationId": "organizationGetKey", + "tags": [ + "organization" + ], + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including its scopes.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getKey", + "group": "keys", + "cookies": false, + "type": "", + "demo": "organization\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update organization key", + "operationId": "organizationUpdateKey", + "tags": [ + "organization" + ], + "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", + "cookies": false, + "type": "", + "demo": "organization\/update-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes" + } + }, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization key", + "operationId": "organizationDeleteKey", + "tags": [ + "organization" + ], + "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", + "cookies": false, + "type": "", + "demo": "organization\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/organization\/projects": { + "get": { + "summary": "List organization projects", + "operationId": "organizationListProjects", + "tags": [ + "organization" + ], + "description": "Get a list of all projects. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Projects List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/projectList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listProjects", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/list-projects.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "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, 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": "<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 organization project", + "operationId": "organizationCreateProject", + "tags": [ + "organization" + ], + "description": "Create a new project.", + "responses": { + "201": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createProject", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/create-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "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>" + }, + "region": { + "type": "string", + "description": "Project Region.", + "x-example": "fra", + "enum": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" + ], + "x-enum-name": "Region" + } + }, + "required": [ + "projectId", + "name" + ] + } + } + } + } + } + }, + "\/organization\/projects\/{projectId}": { + "get": { + "summary": "Get organization project", + "operationId": "organizationGetProject", + "tags": [ + "organization" + ], + "description": "Get a project.", + "responses": { + "200": { + "description": "Project", + "content": { + "": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getProject", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/get-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update organization project", + "operationId": "organizationUpdateProject", + "tags": [ + "organization" + ], + "description": "Update a project by its unique ID.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateProject", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/update-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "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": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete organization project", + "operationId": "organizationDeleteProject", + "tags": [ + "organization" + ], + "description": "Delete a project by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteProject", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/delete-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, "\/presences": { "get": { "summary": "List presences", @@ -28303,7 +29049,6 @@ "x-appwrite": { "method": "list", "group": "presences", - "weight": 419, "cookies": false, "type": "", "demo": "presences\/list.md", @@ -28397,7 +29142,6 @@ "x-appwrite": { "method": "get", "group": "presences", - "weight": 418, "cookies": false, "type": "", "demo": "presences\/get.md", @@ -28463,7 +29207,6 @@ "x-appwrite": { "method": "upsert", "group": "presences", - "weight": 416, "cookies": false, "type": "", "demo": "presences\/upsert.md", @@ -28566,6 +29309,7 @@ "metadata": { "type": "object", "description": "Presence metadata object.", + "default": {}, "x-example": "{}" } }, @@ -28600,7 +29344,6 @@ "x-appwrite": { "method": "update", "group": "presences", - "weight": 420, "cookies": false, "type": "", "demo": "presences\/update.md", @@ -28708,6 +29451,7 @@ "purge": { "type": "boolean", "description": "When true, purge cached responses used by list presences endpoint.", + "default": false, "x-example": false } } @@ -28732,7 +29476,6 @@ "x-appwrite": { "method": "delete", "group": "presences", - "weight": 421, "cookies": false, "type": "", "demo": "presences\/delete.md", @@ -28800,7 +29543,6 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 1109, "cookies": false, "type": "", "demo": "project\/get.md", @@ -28842,7 +29584,6 @@ "x-appwrite": { "method": "delete", "group": null, - "weight": 1108, "cookies": false, "type": "", "demo": "project\/delete.md", @@ -28893,7 +29634,6 @@ "x-appwrite": { "method": "updateAuthMethod", "group": null, - "weight": 1158, "cookies": false, "type": "", "demo": "project\/update-auth-method.md", @@ -28935,8 +29675,7 @@ "jwt", "phone" ], - "x-enum-name": "ProjectAuthMethodId", - "x-enum-keys": [] + "x-enum-name": "ProjectAuthMethodId" }, "in": "path" } @@ -28986,7 +29725,6 @@ "x-appwrite": { "method": "listKeys", "group": "keys", - "weight": 1125, "cookies": false, "type": "", "demo": "project\/list-keys.md", @@ -29061,7 +29799,6 @@ "x-appwrite": { "method": "createKey", "group": "keys", - "weight": 1123, "cookies": false, "type": "", "demo": "project\/create-key.md", @@ -29204,8 +29941,7 @@ "events.read", "usage.read" ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [] + "x-enum-name": "ProjectKeyScopes" } }, "expire": { @@ -29251,7 +29987,6 @@ "x-appwrite": { "method": "createEphemeralKey", "group": "keys", - "weight": 1124, "cookies": false, "type": "", "demo": "project\/create-ephemeral-key.md", @@ -29384,8 +30119,7 @@ "events.read", "usage.read" ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [] + "x-enum-name": "ProjectKeyScopes" } }, "duration": { @@ -29429,7 +30163,6 @@ "x-appwrite": { "method": "getKey", "group": "keys", - "weight": 1126, "cookies": false, "type": "", "demo": "project\/get-key.md", @@ -29490,7 +30223,6 @@ "x-appwrite": { "method": "updateKey", "group": "keys", - "weight": 1128, "cookies": false, "type": "", "demo": "project\/update-key.md", @@ -29640,8 +30372,7 @@ "events.read", "usage.read" ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [] + "x-enum-name": "ProjectKeyScopes" } }, "expire": { @@ -29677,7 +30408,6 @@ "x-appwrite": { "method": "deleteKey", "group": "keys", - "weight": 1127, "cookies": false, "type": "", "demo": "project\/delete-key.md", @@ -29740,7 +30470,6 @@ "x-appwrite": { "method": "updateLabels", "group": null, - "weight": 1110, "cookies": false, "type": "", "demo": "project\/update-labels.md", @@ -29813,7 +30542,6 @@ "x-appwrite": { "method": "listMockPhones", "group": "mocks", - "weight": 1143, "cookies": false, "type": "", "demo": "project\/list-mock-phones.md", @@ -29888,7 +30616,6 @@ "x-appwrite": { "method": "createMockPhone", "group": "mocks", - "weight": 1142, "cookies": false, "type": "", "demo": "project\/create-mock-phone.md", @@ -29965,7 +30692,6 @@ "x-appwrite": { "method": "getMockPhone", "group": "mocks", - "weight": 1144, "cookies": false, "type": "", "demo": "project\/get-mock-phone.md", @@ -30027,7 +30753,6 @@ "x-appwrite": { "method": "updateMockPhone", "group": "mocks", - "weight": 1145, "cookies": false, "type": "", "demo": "project\/update-mock-phone.md", @@ -30101,7 +30826,6 @@ "x-appwrite": { "method": "deleteMockPhone", "group": "mocks", - "weight": 1146, "cookies": false, "type": "", "demo": "project\/delete-mock-phone.md", @@ -30165,7 +30889,6 @@ "x-appwrite": { "method": "listOAuth2Providers", "group": "oauth2", - "weight": 1159, "cookies": false, "type": "", "demo": "project\/list-o-auth-2-providers.md", @@ -30242,7 +30965,6 @@ "x-appwrite": { "method": "updateOAuth2Amazon", "group": "oauth2", - "weight": 1186, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-amazon.md", @@ -30322,7 +31044,6 @@ "x-appwrite": { "method": "updateOAuth2Apple", "group": "oauth2", - "weight": 1201, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-apple.md", @@ -30414,7 +31135,6 @@ "x-appwrite": { "method": "updateOAuth2Auth0", "group": "oauth2", - "weight": 1195, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-auth-0.md", @@ -30500,7 +31220,6 @@ "x-appwrite": { "method": "updateOAuth2Authentik", "group": "oauth2", - "weight": 1194, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-authentik.md", @@ -30586,7 +31305,6 @@ "x-appwrite": { "method": "updateOAuth2Autodesk", "group": "oauth2", - "weight": 1169, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-autodesk.md", @@ -30666,7 +31384,6 @@ "x-appwrite": { "method": "updateOAuth2Bitbucket", "group": "oauth2", - "weight": 1166, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-bitbucket.md", @@ -30746,7 +31463,6 @@ "x-appwrite": { "method": "updateOAuth2Bitly", "group": "oauth2", - "weight": 1167, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-bitly.md", @@ -30826,7 +31542,6 @@ "x-appwrite": { "method": "updateOAuth2Box", "group": "oauth2", - "weight": 1168, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-box.md", @@ -30906,7 +31621,6 @@ "x-appwrite": { "method": "updateOAuth2Dailymotion", "group": "oauth2", - "weight": 1165, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-dailymotion.md", @@ -30986,7 +31700,6 @@ "x-appwrite": { "method": "updateOAuth2Discord", "group": "oauth2", - "weight": 1162, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-discord.md", @@ -31066,7 +31779,6 @@ "x-appwrite": { "method": "updateOAuth2Disqus", "group": "oauth2", - "weight": 1185, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-disqus.md", @@ -31146,7 +31858,6 @@ "x-appwrite": { "method": "updateOAuth2Dropbox", "group": "oauth2", - "weight": 1164, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-dropbox.md", @@ -31226,7 +31937,6 @@ "x-appwrite": { "method": "updateOAuth2Etsy", "group": "oauth2", - "weight": 1187, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-etsy.md", @@ -31306,7 +32016,6 @@ "x-appwrite": { "method": "updateOAuth2Facebook", "group": "oauth2", - "weight": 1188, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-facebook.md", @@ -31386,7 +32095,6 @@ "x-appwrite": { "method": "updateOAuth2Figma", "group": "oauth2", - "weight": 1163, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-figma.md", @@ -31466,7 +32174,6 @@ "x-appwrite": { "method": "updateOAuth2FusionAuth", "group": "oauth2", - "weight": 1196, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-fusion-auth.md", @@ -31552,7 +32259,6 @@ "x-appwrite": { "method": "updateOAuth2GitHub", "group": "oauth2", - "weight": 1161, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-git-hub.md", @@ -31632,7 +32338,6 @@ "x-appwrite": { "method": "updateOAuth2Gitlab", "group": "oauth2", - "weight": 1193, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-gitlab.md", @@ -31719,7 +32424,6 @@ "x-appwrite": { "method": "updateOAuth2Google", "group": "oauth2", - "weight": 1170, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-google.md", @@ -31773,8 +32477,7 @@ "consent", "select_account" ], - "x-enum-name": "ProjectOAuth2GooglePrompt", - "x-enum-keys": [] + "x-enum-name": "ProjectOAuth2GooglePrompt" }, "x-nullable": true }, @@ -31815,7 +32518,6 @@ "x-appwrite": { "method": "updateOAuth2Keycloak", "group": "oauth2", - "weight": 1197, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-keycloak.md", @@ -31907,7 +32609,6 @@ "x-appwrite": { "method": "updateOAuth2Kick", "group": "oauth2", - "weight": 1200, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-kick.md", @@ -31987,7 +32688,6 @@ "x-appwrite": { "method": "updateOAuth2Linkedin", "group": "oauth2", - "weight": 1184, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-linkedin.md", @@ -32067,7 +32767,6 @@ "x-appwrite": { "method": "updateOAuth2Microsoft", "group": "oauth2", - "weight": 1202, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-microsoft.md", @@ -32153,7 +32852,6 @@ "x-appwrite": { "method": "updateOAuth2Notion", "group": "oauth2", - "weight": 1181, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-notion.md", @@ -32233,7 +32931,6 @@ "x-appwrite": { "method": "updateOAuth2Oidc", "group": "oauth2", - "weight": 1198, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-oidc.md", @@ -32341,7 +33038,6 @@ "x-appwrite": { "method": "updateOAuth2Okta", "group": "oauth2", - "weight": 1199, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-okta.md", @@ -32433,7 +33129,6 @@ "x-appwrite": { "method": "updateOAuth2Paypal", "group": "oauth2", - "weight": 1191, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-paypal.md", @@ -32513,7 +33208,6 @@ "x-appwrite": { "method": "updateOAuth2PaypalSandbox", "group": "oauth2", - "weight": 1192, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-paypal-sandbox.md", @@ -32593,7 +33287,6 @@ "x-appwrite": { "method": "updateOAuth2Podio", "group": "oauth2", - "weight": 1180, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-podio.md", @@ -32673,7 +33366,6 @@ "x-appwrite": { "method": "updateOAuth2Salesforce", "group": "oauth2", - "weight": 1182, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-salesforce.md", @@ -32753,7 +33445,6 @@ "x-appwrite": { "method": "updateOAuth2Slack", "group": "oauth2", - "weight": 1179, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-slack.md", @@ -32833,7 +33524,6 @@ "x-appwrite": { "method": "updateOAuth2Spotify", "group": "oauth2", - "weight": 1178, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-spotify.md", @@ -32913,7 +33603,6 @@ "x-appwrite": { "method": "updateOAuth2Stripe", "group": "oauth2", - "weight": 1177, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-stripe.md", @@ -32993,7 +33682,6 @@ "x-appwrite": { "method": "updateOAuth2Tradeshift", "group": "oauth2", - "weight": 1189, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-tradeshift.md", @@ -33073,7 +33761,6 @@ "x-appwrite": { "method": "updateOAuth2TradeshiftSandbox", "group": "oauth2", - "weight": 1190, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", @@ -33153,7 +33840,6 @@ "x-appwrite": { "method": "updateOAuth2Twitch", "group": "oauth2", - "weight": 1176, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-twitch.md", @@ -33233,7 +33919,6 @@ "x-appwrite": { "method": "updateOAuth2WordPress", "group": "oauth2", - "weight": 1175, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-word-press.md", @@ -33313,7 +33998,6 @@ "x-appwrite": { "method": "updateOAuth2X", "group": "oauth2", - "weight": 1174, "cookies": false, "type": "", "demo": "project\/update-o-auth-2x.md", @@ -33393,7 +34077,6 @@ "x-appwrite": { "method": "updateOAuth2Yahoo", "group": "oauth2", - "weight": 1183, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-yahoo.md", @@ -33473,7 +34156,6 @@ "x-appwrite": { "method": "updateOAuth2Yandex", "group": "oauth2", - "weight": 1173, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-yandex.md", @@ -33553,7 +34235,6 @@ "x-appwrite": { "method": "updateOAuth2Zoho", "group": "oauth2", - "weight": 1172, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-zoho.md", @@ -33633,7 +34314,6 @@ "x-appwrite": { "method": "updateOAuth2Zoom", "group": "oauth2", - "weight": 1171, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-zoom.md", @@ -33881,7 +34561,6 @@ "x-appwrite": { "method": "getOAuth2Provider", "group": "oauth2", - "weight": 1160, "cookies": false, "type": "", "demo": "project\/get-o-auth-2-provider.md", @@ -33957,12 +34636,9 @@ "yammer", "yandex", "zoho", - "zoom", - "githubImagine", - "googleImagine" + "zoom" ], - "x-enum-name": "ProjectOAuthProviderId", - "x-enum-keys": [] + "x-enum-name": "ProjectOAuthProviderId" }, "in": "path" } @@ -33993,7 +34669,6 @@ "x-appwrite": { "method": "listPlatforms", "group": "platforms", - "weight": 1129, "cookies": false, "type": "", "demo": "project\/list-platforms.md", @@ -34070,7 +34745,6 @@ "x-appwrite": { "method": "createAndroidPlatform", "group": "platforms", - "weight": 1133, "cookies": false, "type": "", "demo": "project\/create-android-platform.md", @@ -34152,7 +34826,6 @@ "x-appwrite": { "method": "updateAndroidPlatform", "group": "platforms", - "weight": 1138, "cookies": false, "type": "", "demo": "project\/update-android-platform.md", @@ -34240,7 +34913,6 @@ "x-appwrite": { "method": "createApplePlatform", "group": "platforms", - "weight": 1132, "cookies": false, "type": "", "demo": "project\/create-apple-platform.md", @@ -34322,7 +34994,6 @@ "x-appwrite": { "method": "updateApplePlatform", "group": "platforms", - "weight": 1137, "cookies": false, "type": "", "demo": "project\/update-apple-platform.md", @@ -34410,7 +35081,6 @@ "x-appwrite": { "method": "createLinuxPlatform", "group": "platforms", - "weight": 1135, "cookies": false, "type": "", "demo": "project\/create-linux-platform.md", @@ -34492,7 +35162,6 @@ "x-appwrite": { "method": "updateLinuxPlatform", "group": "platforms", - "weight": 1140, "cookies": false, "type": "", "demo": "project\/update-linux-platform.md", @@ -34580,7 +35249,6 @@ "x-appwrite": { "method": "createWebPlatform", "group": "platforms", - "weight": 1131, "cookies": false, "type": "", "demo": "project\/create-web-platform.md", @@ -34662,7 +35330,6 @@ "x-appwrite": { "method": "updateWebPlatform", "group": "platforms", - "weight": 1136, "cookies": false, "type": "", "demo": "project\/update-web-platform.md", @@ -34750,7 +35417,6 @@ "x-appwrite": { "method": "createWindowsPlatform", "group": "platforms", - "weight": 1134, "cookies": false, "type": "", "demo": "project\/create-windows-platform.md", @@ -34832,7 +35498,6 @@ "x-appwrite": { "method": "updateWindowsPlatform", "group": "platforms", - "weight": 1139, "cookies": false, "type": "", "demo": "project\/update-windows-platform.md", @@ -34946,7 +35611,6 @@ "x-appwrite": { "method": "getPlatform", "group": "platforms", - "weight": 1130, "cookies": false, "type": "", "demo": "project\/get-platform.md", @@ -35000,7 +35664,6 @@ "x-appwrite": { "method": "deletePlatform", "group": "platforms", - "weight": 1141, "cookies": false, "type": "", "demo": "project\/delete-platform.md", @@ -35063,7 +35726,6 @@ "x-appwrite": { "method": "listPolicies", "group": "policies", - "weight": 1147, "cookies": false, "type": "", "demo": "project\/list-policies.md", @@ -35143,7 +35805,6 @@ "x-appwrite": { "method": "updateDenyAliasedEmailPolicy", "group": "policies", - "weight": 1203, "cookies": false, "type": "", "demo": "project\/update-deny-aliased-email-policy.md", @@ -35216,7 +35877,6 @@ "x-appwrite": { "method": "updateDenyDisposableEmailPolicy", "group": "policies", - "weight": 1204, "cookies": false, "type": "", "demo": "project\/update-deny-disposable-email-policy.md", @@ -35289,7 +35949,6 @@ "x-appwrite": { "method": "updateDenyFreeEmailPolicy", "group": "policies", - "weight": 1205, "cookies": false, "type": "", "demo": "project\/update-deny-free-email-policy.md", @@ -35362,7 +36021,6 @@ "x-appwrite": { "method": "updateMembershipPrivacyPolicy", "group": "policies", - "weight": 1149, "cookies": false, "type": "", "demo": "project\/update-membership-privacy-policy.md", @@ -35452,7 +36110,6 @@ "x-appwrite": { "method": "updatePasswordDictionaryPolicy", "group": "policies", - "weight": 1150, "cookies": false, "type": "", "demo": "project\/update-password-dictionary-policy.md", @@ -35525,7 +36182,6 @@ "x-appwrite": { "method": "updatePasswordHistoryPolicy", "group": "policies", - "weight": 1151, "cookies": false, "type": "", "demo": "project\/update-password-history-policy.md", @@ -35600,7 +36256,6 @@ "x-appwrite": { "method": "updatePasswordPersonalDataPolicy", "group": "policies", - "weight": 1152, "cookies": false, "type": "", "demo": "project\/update-password-personal-data-policy.md", @@ -35673,7 +36328,6 @@ "x-appwrite": { "method": "updateSessionAlertPolicy", "group": "policies", - "weight": 1153, "cookies": false, "type": "", "demo": "project\/update-session-alert-policy.md", @@ -35746,7 +36400,6 @@ "x-appwrite": { "method": "updateSessionDurationPolicy", "group": "policies", - "weight": 1154, "cookies": false, "type": "", "demo": "project\/update-session-duration-policy.md", @@ -35820,7 +36473,6 @@ "x-appwrite": { "method": "updateSessionInvalidationPolicy", "group": "policies", - "weight": 1155, "cookies": false, "type": "", "demo": "project\/update-session-invalidation-policy.md", @@ -35893,7 +36545,6 @@ "x-appwrite": { "method": "updateSessionLimitPolicy", "group": "policies", - "weight": 1156, "cookies": false, "type": "", "demo": "project\/update-session-limit-policy.md", @@ -35968,7 +36619,6 @@ "x-appwrite": { "method": "updateUserLimitPolicy", "group": "policies", - "weight": 1157, "cookies": false, "type": "", "demo": "project\/update-user-limit-policy.md", @@ -36085,7 +36735,6 @@ "x-appwrite": { "method": "getPolicy", "group": "policies", - "weight": 1148, "cookies": false, "type": "", "demo": "project\/get-policy.md", @@ -36132,8 +36781,7 @@ "user-limit", "membership-privacy" ], - "x-enum-name": "ProjectPolicyId", - "x-enum-keys": [] + "x-enum-name": "ProjectPolicyId" }, "in": "path" } @@ -36164,7 +36812,6 @@ "x-appwrite": { "method": "updateProtocol", "group": null, - "weight": 1111, "cookies": false, "type": "", "demo": "project\/update-protocol.md", @@ -36202,8 +36849,7 @@ "graphql", "websocket" ], - "x-enum-name": "ProjectProtocolId", - "x-enum-keys": [] + "x-enum-name": "ProjectProtocolId" }, "in": "path" } @@ -36253,7 +36899,6 @@ "x-appwrite": { "method": "updateService", "group": null, - "weight": 1112, "cookies": false, "type": "", "demo": "project\/update-service.md", @@ -36306,8 +36951,7 @@ "messaging", "advisor" ], - "x-enum-name": "ProjectServiceId", - "x-enum-keys": [] + "x-enum-name": "ProjectServiceId" }, "in": "path" } @@ -36357,7 +37001,6 @@ "x-appwrite": { "method": "updateSMTP", "group": "smtp", - "weight": 1113, "cookies": false, "type": "", "demo": "project\/update-smtp.md", @@ -36403,39 +37046,39 @@ }, "username": { "type": "string", - "description": "SMTP server username. Leave empty for no authorization.", + "description": "SMTP server username. Pass an empty string to clear a previously set value.", "x-example": "<USERNAME>", "x-nullable": true }, "password": { "type": "string", - "description": "SMTP server password. Leave empty for no authorization. This property is stored securely and cannot be read in future (write-only).", + "description": "SMTP server password. Pass an empty string to clear a previously set value. This property is stored securely and cannot be read in future (write-only).", "x-example": "<PASSWORD>", "x-nullable": true }, "senderEmail": { "type": "string", - "description": "Email address shown in inbox as the sender of the email.", + "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", "x-example": "email@example.com", "format": "email", "x-nullable": true }, "senderName": { "type": "string", - "description": "Name shown in inbox as the sender of the email.", + "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", "x-example": "<SENDER_NAME>", "x-nullable": true }, "replyToEmail": { "type": "string", - "description": "Email used when user replies to the email.", + "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", "x-example": "email@example.com", "format": "email", "x-nullable": true }, "replyToName": { "type": "string", - "description": "Name used when user replies to the email.", + "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", "x-example": "<REPLY_TO_NAME>", "x-nullable": true }, @@ -36448,7 +37091,6 @@ "ssl" ], "x-enum-name": "ProjectSMTPSecure", - "x-enum-keys": [], "x-nullable": true }, "enabled": { @@ -36481,7 +37123,6 @@ "x-appwrite": { "method": "createSMTPTest", "group": "smtp", - "weight": 1114, "cookies": false, "type": "", "demo": "project\/create-smtp-test.md", @@ -36554,7 +37195,6 @@ "x-appwrite": { "method": "listEmailTemplates", "group": "templates", - "weight": 1115, "cookies": false, "type": "", "demo": "project\/list-email-templates.md", @@ -36629,7 +37269,6 @@ "x-appwrite": { "method": "updateEmailTemplate", "group": "templates", - "weight": 1117, "cookies": false, "type": "", "demo": "project\/update-email-template.md", @@ -36673,8 +37312,7 @@ "sessionAlert", "otpSession" ], - "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [] + "x-enum-name": "ProjectEmailTemplateId" }, "locale": { "type": "string", @@ -36813,8 +37451,7 @@ "zh-tw", "zu" ], - "x-enum-name": "ProjectEmailTemplateLocale", - "x-enum-keys": [] + "x-enum-name": "ProjectEmailTemplateLocale" }, "subject": { "type": "string", @@ -36836,14 +37473,14 @@ }, "senderEmail": { "type": "string", - "description": "Email of the sender.", + "description": "Email of the sender. Pass an empty string to clear a previously set value.", "x-example": "email@example.com", "format": "email", "x-nullable": true }, "replyToEmail": { "type": "string", - "description": "Reply to email.", + "description": "Reply to email. Pass an empty string to clear a previously set value.", "x-example": "email@example.com", "format": "email", "x-nullable": true @@ -36888,7 +37525,6 @@ "x-appwrite": { "method": "getEmailTemplate", "group": "templates", - "weight": 1116, "cookies": false, "type": "", "demo": "project\/get-email-template.md", @@ -36930,8 +37566,7 @@ "sessionAlert", "otpSession" ], - "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [] + "x-enum-name": "ProjectEmailTemplateId" }, "in": "path" }, @@ -37075,9 +37710,7 @@ "zh-tw", "zu" ], - "x-enum-name": "ProjectEmailTemplateLocale", - "x-enum-keys": [], - "default": "" + "x-enum-name": "ProjectEmailTemplateLocale" }, "in": "query" } @@ -37108,7 +37741,6 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 1119, "cookies": false, "type": "", "demo": "project\/list-variables.md", @@ -37183,7 +37815,6 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 1118, "cookies": false, "type": "", "demo": "project\/create-variable.md", @@ -37232,6 +37863,7 @@ "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 } }, @@ -37270,7 +37902,6 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 1120, "cookies": false, "type": "", "demo": "project\/get-variable.md", @@ -37331,7 +37962,6 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 1122, "cookies": false, "type": "", "demo": "project\/update-variable.md", @@ -37414,7 +38044,6 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 1121, "cookies": false, "type": "", "demo": "project\/delete-variable.md", @@ -37477,7 +38106,6 @@ "x-appwrite": { "method": "listRules", "group": "rules", - "weight": 1215, "cookies": false, "type": "", "demo": "proxy\/list-rules.md", @@ -37554,7 +38182,6 @@ "x-appwrite": { "method": "createAPIRule", "group": "rules", - "weight": 1210, "cookies": false, "type": "", "demo": "proxy\/create-api-rule.md", @@ -37624,7 +38251,6 @@ "x-appwrite": { "method": "createFunctionRule", "group": "rules", - "weight": 1212, "cookies": false, "type": "", "demo": "proxy\/create-function-rule.md", @@ -37668,6 +38294,7 @@ "branch": { "type": "string", "description": "Name of VCS branch to deploy changes automatically", + "default": "", "x-example": "<BRANCH>" } }, @@ -37705,7 +38332,6 @@ "x-appwrite": { "method": "createRedirectRule", "group": "rules", - "weight": 1213, "cookies": false, "type": "", "demo": "proxy\/create-redirect-rule.md", @@ -37757,13 +38383,7 @@ "307", "308" ], - "x-enum-name": null, - "x-enum-keys": [ - "Moved Permanently 301", - "Found 302", - "Temporary Redirect 307", - "Permanent Redirect 308" - ] + "x-enum-name": "RedirectStatusCode" }, "resourceId": { "type": "string", @@ -37822,7 +38442,6 @@ "x-appwrite": { "method": "createSiteRule", "group": "rules", - "weight": 1211, "cookies": false, "type": "", "demo": "proxy\/create-site-rule.md", @@ -37866,6 +38485,7 @@ "branch": { "type": "string", "description": "Name of VCS branch to deploy changes automatically", + "default": "", "x-example": "<BRANCH>" } }, @@ -37903,7 +38523,6 @@ "x-appwrite": { "method": "getRule", "group": "rules", - "weight": 1214, "cookies": false, "type": "", "demo": "proxy\/get-rule.md", @@ -37957,7 +38576,6 @@ "x-appwrite": { "method": "deleteRule", "group": "rules", - "weight": 1216, "cookies": false, "type": "", "demo": "proxy\/delete-rule.md", @@ -38020,7 +38638,6 @@ "x-appwrite": { "method": "updateRuleStatus", "group": "rules", - "weight": 1217, "cookies": false, "type": "", "demo": "proxy\/update-rule-status.md", @@ -38083,7 +38700,6 @@ "x-appwrite": { "method": "listReports", "group": "reports", - "weight": 695, "cookies": false, "type": "", "demo": "advisor\/list-reports.md", @@ -38093,8 +38709,6 @@ "scope": "reports.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, @@ -38102,15 +38716,13 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-reports.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -38165,7 +38777,6 @@ "x-appwrite": { "method": "getReport", "group": "reports", - "weight": 694, "cookies": false, "type": "", "demo": "advisor\/get-report.md", @@ -38175,8 +38786,6 @@ "scope": "reports.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, @@ -38184,15 +38793,13 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-report.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -38224,7 +38831,6 @@ "x-appwrite": { "method": "deleteReport", "group": "reports", - "weight": 696, "cookies": false, "type": "", "demo": "advisor\/delete-report.md", @@ -38288,7 +38894,6 @@ "x-appwrite": { "method": "listInsights", "group": "insights", - "weight": 698, "cookies": false, "type": "", "demo": "advisor\/list-insights.md", @@ -38298,8 +38903,6 @@ "scope": "insights.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, @@ -38307,15 +38910,13 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-insights.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -38380,7 +38981,6 @@ "x-appwrite": { "method": "getInsight", "group": "insights", - "weight": 697, "cookies": false, "type": "", "demo": "advisor\/get-insight.md", @@ -38390,8 +38990,6 @@ "scope": "insights.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, @@ -38399,15 +38997,13 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-insight.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -38458,7 +39054,6 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 479, "cookies": false, "type": "", "demo": "sites\/list.md", @@ -38544,7 +39139,6 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 924, "cookies": false, "type": "", "demo": "sites\/create.md", @@ -38606,43 +39200,49 @@ "vite", "other" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "SiteFramework" }, "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>" }, "startCommand": { "type": "string", "description": "Custom start command. Leave empty to use default.", + "default": "", "x-example": "<START_COMMAND>" }, "outputDirectory": { "type": "string", "description": "Output Directory for site.", + "default": "", "x-example": "<OUTPUT_DIRECTORY>" }, "buildRuntime": { @@ -38702,6 +39302,7 @@ "dart-3.9", "dart-3.10", "dart-3.11", + "dart-3.12", "dotnet-6.0", "dotnet-7.0", "dotnet-8.0", @@ -38741,10 +39342,10 @@ "flutter-3.32", "flutter-3.35", "flutter-3.38", - "flutter-3.41" + "flutter-3.41", + "flutter-3.44" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "SiteBuildRuntime" }, "adapter": { "type": "string", @@ -38754,52 +39355,78 @@ "static", "ssr" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "SiteAdapter" }, "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>" }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, "buildSpecification": { "type": "string", "description": "Build specification for the site deployments.", + "default": {}, "x-example": null }, "runtimeSpecification": { "type": "string", "description": "Runtime specification for the SSR executions.", + "default": {}, "x-example": null }, "deploymentRetention": { "type": "integer", "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, "x-example": 0, "format": "int32" } @@ -38840,7 +39467,6 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 482, "cookies": false, "type": "", "demo": "sites\/list-frameworks.md", @@ -38891,7 +39517,6 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 505, "cookies": false, "type": "", "demo": "sites\/list-specifications.md", @@ -38942,7 +39567,6 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 478, "cookies": false, "type": "", "demo": "sites\/get.md", @@ -39003,7 +39627,6 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 925, "cookies": false, "type": "", "demo": "sites\/update.md", @@ -39072,43 +39695,49 @@ "vite", "other" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "SiteFramework" }, "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>" }, "startCommand": { "type": "string", "description": "Custom start command. Leave empty to use default.", + "default": "", "x-example": "<START_COMMAND>" }, "outputDirectory": { "type": "string", "description": "Output Directory for site.", + "default": "", "x-example": "<OUTPUT_DIRECTORY>" }, "buildRuntime": { @@ -39168,6 +39797,7 @@ "dart-3.9", "dart-3.10", "dart-3.11", + "dart-3.12", "dotnet-6.0", "dotnet-7.0", "dotnet-8.0", @@ -39207,10 +39837,10 @@ "flutter-3.32", "flutter-3.35", "flutter-3.38", - "flutter-3.41" + "flutter-3.41", + "flutter-3.44" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "SiteBuildRuntime" }, "adapter": { "type": "string", @@ -39220,52 +39850,78 @@ "static", "ssr" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "SiteAdapter" }, "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>" }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, "buildSpecification": { "type": "string", "description": "Build specification for the site deployments.", + "default": {}, "x-example": null }, "runtimeSpecification": { "type": "string", "description": "Runtime specification for the SSR executions.", + "default": {}, "x-example": null }, "deploymentRetention": { "type": "integer", "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, "x-example": 0, "format": "int32" } @@ -39295,7 +39951,6 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 481, "cookies": false, "type": "", "demo": "sites\/delete.md", @@ -39358,7 +40013,6 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 488, "cookies": false, "type": "", "demo": "sites\/update-site-deployment.md", @@ -39440,7 +40094,6 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 487, "cookies": false, "type": "", "demo": "sites\/list-deployments.md", @@ -39536,7 +40189,6 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 483, "cookies": false, "type": "upload", "demo": "sites\/create-deployment.md", @@ -39606,6 +40258,7 @@ "activate": { "type": "boolean", "description": "Automatically activate the deployment when it is finished building.", + "default": false, "x-example": false } }, @@ -39642,7 +40295,6 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 491, "cookies": false, "type": "", "demo": "sites\/create-duplicate-deployment.md", @@ -39724,7 +40376,6 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 484, "cookies": false, "type": "", "demo": "sites\/create-template-deployment.md", @@ -39791,8 +40442,7 @@ "commit", "tag" ], - "x-enum-name": "TemplateReferenceType", - "x-enum-keys": [] + "x-enum-name": "TemplateReferenceType" }, "reference": { "type": "string", @@ -39802,6 +40452,7 @@ "activate": { "type": "boolean", "description": "Automatically activate the deployment when it is finished building.", + "default": false, "x-example": false } }, @@ -39842,7 +40493,6 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 485, "cookies": false, "type": "", "demo": "sites\/create-vcs-deployment.md", @@ -39894,8 +40544,7 @@ "commit", "tag" ], - "x-enum-name": "VCSReferenceType", - "x-enum-keys": [] + "x-enum-name": "VCSReferenceType" }, "reference": { "type": "string", @@ -39905,6 +40554,7 @@ "activate": { "type": "boolean", "description": "Automatically activate the deployment when it is finished building.", + "default": false, "x-example": false } }, @@ -39942,7 +40592,6 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 486, "cookies": false, "type": "", "demo": "sites\/get-deployment.md", @@ -40006,7 +40655,6 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 489, "cookies": false, "type": "", "demo": "sites\/delete-deployment.md", @@ -40072,7 +40720,6 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 490, "cookies": false, "type": "location", "demo": "sites\/get-deployment-download.md", @@ -40132,7 +40779,6 @@ "output" ], "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], "default": "source" }, "in": "query" @@ -40164,7 +40810,6 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 492, "cookies": false, "type": "", "demo": "sites\/update-deployment-status.md", @@ -40237,7 +40882,6 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 494, "cookies": false, "type": "", "demo": "sites\/list-logs.md", @@ -40324,7 +40968,6 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 493, "cookies": false, "type": "", "demo": "sites\/get-log.md", @@ -40388,7 +41031,6 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 495, "cookies": false, "type": "", "demo": "sites\/delete-log.md", @@ -40461,7 +41103,6 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 498, "cookies": false, "type": "", "demo": "sites\/list-variables.md", @@ -40546,7 +41187,6 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 926, "cookies": false, "type": "", "demo": "sites\/create-variable.md", @@ -40607,6 +41247,7 @@ "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 } }, @@ -40645,7 +41286,6 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 497, "cookies": false, "type": "", "demo": "sites\/get-variable.md", @@ -40716,7 +41356,6 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 499, "cookies": false, "type": "", "demo": "sites\/update-variable.md", @@ -40809,7 +41448,6 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 500, "cookies": false, "type": "", "demo": "sites\/delete-variable.md", @@ -40882,7 +41520,6 @@ "x-appwrite": { "method": "listBuckets", "group": "buckets", - "weight": 550, "cookies": false, "type": "", "demo": "storage\/list-buckets.md", @@ -40969,7 +41606,6 @@ "x-appwrite": { "method": "createBucket", "group": "buckets", - "weight": 548, "cookies": false, "type": "", "demo": "storage\/create-bucket.md", @@ -41023,22 +41659,26 @@ "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.", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 0B.", + "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" @@ -41047,28 +41687,31 @@ "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": [] + "x-enum-name": "Compression" }, "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 } }, @@ -41106,7 +41749,6 @@ "x-appwrite": { "method": "getBucket", "group": "buckets", - "weight": 549, "cookies": false, "type": "", "demo": "storage\/get-bucket.md", @@ -41168,7 +41810,6 @@ "x-appwrite": { "method": "updateBucket", "group": "buckets", - "weight": 551, "cookies": false, "type": "", "demo": "storage\/update-bucket.md", @@ -41229,22 +41870,26 @@ "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.", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 0B.", + "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" @@ -41253,28 +41898,31 @@ "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": [] + "x-enum-name": "Compression" }, "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 } }, @@ -41302,7 +41950,6 @@ "x-appwrite": { "method": "deleteBucket", "group": "buckets", - "weight": 552, "cookies": false, "type": "", "demo": "storage\/delete-bucket.md", @@ -41366,7 +42013,6 @@ "x-appwrite": { "method": "listFiles", "group": "files", - "weight": 555, "cookies": false, "type": "", "demo": "storage\/list-files.md", @@ -41467,7 +42113,6 @@ "x-appwrite": { "method": "createFile", "group": "files", - "weight": 1208, "cookies": false, "type": "upload", "demo": "storage\/create-file.md", @@ -41571,7 +42216,6 @@ "x-appwrite": { "method": "getFile", "group": "files", - "weight": 554, "cookies": false, "type": "", "demo": "storage\/get-file.md", @@ -41647,7 +42291,6 @@ "x-appwrite": { "method": "updateFile", "group": "files", - "weight": 556, "cookies": false, "type": "", "demo": "storage\/update-file.md", @@ -41741,7 +42384,6 @@ "x-appwrite": { "method": "deleteFile", "group": "files", - "weight": 557, "cookies": false, "type": "", "demo": "storage\/delete-file.md", @@ -41812,7 +42454,6 @@ "x-appwrite": { "method": "getFileDownload", "group": "files", - "weight": 559, "cookies": false, "type": "location", "demo": "storage\/get-file-download.md", @@ -41894,7 +42535,6 @@ "x-appwrite": { "method": "getFilePreview", "group": "files", - "weight": 558, "cookies": false, "type": "location", "demo": "storage\/get-file-preview.md", @@ -41988,7 +42628,6 @@ "bottom-right" ], "x-enum-name": "ImageGravity", - "x-enum-keys": [], "default": "center" }, "in": "query" @@ -42089,9 +42728,7 @@ "avif", "gif" ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "" + "x-enum-name": "ImageFormat" }, "in": "query" }, @@ -42126,7 +42763,6 @@ "x-appwrite": { "method": "getFileView", "group": "files", - "weight": 560, "cookies": false, "type": "location", "demo": "storage\/get-file-view.md", @@ -42215,7 +42851,6 @@ "x-appwrite": { "method": "list", "group": "tablesdb", - "weight": 780, "cookies": false, "type": "", "demo": "tablesdb\/list.md", @@ -42302,7 +42937,6 @@ "x-appwrite": { "method": "create", "group": "tablesdb", - "weight": 776, "cookies": false, "type": "", "demo": "tablesdb\/create.md", @@ -42347,6 +42981,7 @@ "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 } }, @@ -42384,7 +43019,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 849, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -42456,7 +43090,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 845, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -42498,6 +43131,7 @@ "ttl": { "type": "integer", "description": "Seconds before the transaction expires.", + "default": 300, "x-example": 60, "format": "int32" } @@ -42532,7 +43166,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 846, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -42601,7 +43234,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 847, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -42655,11 +43287,13 @@ "commit": { "type": "boolean", "description": "Commit transaction?", + "default": false, "x-example": false }, "rollback": { "type": "boolean", "description": "Rollback transaction?", + "default": false, "x-example": false } } @@ -42684,7 +43318,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 848, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -42755,7 +43388,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 850, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -42809,6 +43441,7 @@ "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" @@ -42845,7 +43478,6 @@ "x-appwrite": { "method": "get", "group": "tablesdb", - "weight": 777, "cookies": false, "type": "", "demo": "tablesdb\/get.md", @@ -42907,7 +43539,6 @@ "x-appwrite": { "method": "update", "group": "tablesdb", - "weight": 778, "cookies": false, "type": "", "demo": "tablesdb\/update.md", @@ -42959,6 +43590,7 @@ "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 } } @@ -42983,7 +43615,6 @@ "x-appwrite": { "method": "delete", "group": "tablesdb", - "weight": 779, "cookies": false, "type": "", "demo": "tablesdb\/delete.md", @@ -43047,7 +43678,6 @@ "x-appwrite": { "method": "listTables", "group": "tables", - "weight": 787, "cookies": false, "type": "", "demo": "tablesdb\/list-tables.md", @@ -43147,7 +43777,6 @@ "x-appwrite": { "method": "createTable", "group": "tables", - "weight": 783, "cookies": false, "type": "", "demo": "tablesdb\/create-table.md", @@ -43216,16 +43845,19 @@ "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" @@ -43234,6 +43866,7 @@ "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" @@ -43274,7 +43907,6 @@ "x-appwrite": { "method": "getTable", "group": "tables", - "weight": 784, "cookies": false, "type": "", "demo": "tablesdb\/get-table.md", @@ -43349,7 +43981,6 @@ "x-appwrite": { "method": "updateTable", "group": "tables", - "weight": 785, "cookies": false, "type": "", "demo": "tablesdb\/update-table.md", @@ -43423,16 +44054,19 @@ "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 }, "purge": { "type": "boolean", "description": "When true, purge all cached list responses for this table as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "default": false, "x-example": false } } @@ -43457,7 +44091,6 @@ "x-appwrite": { "method": "deleteTable", "group": "tables", - "weight": 786, "cookies": false, "type": "", "demo": "tablesdb\/delete-table.md", @@ -43534,7 +44167,6 @@ "x-appwrite": { "method": "listColumns", "group": "columns", - "weight": 792, "cookies": false, "type": "", "demo": "tablesdb\/list-columns.md", @@ -43637,7 +44269,6 @@ "x-appwrite": { "method": "createBigIntColumn", "group": "columns", - "weight": 805, "cookies": false, "type": "", "demo": "tablesdb\/create-big-int-column.md", @@ -43730,6 +44361,7 @@ "array": { "type": "boolean", "description": "Is column an array?", + "default": false, "x-example": false } }, @@ -43767,7 +44399,6 @@ "x-appwrite": { "method": "updateBigIntColumn", "group": "columns", - "weight": 806, "cookies": false, "type": "", "demo": "tablesdb\/update-big-int-column.md", @@ -43902,7 +44533,6 @@ "x-appwrite": { "method": "createBooleanColumn", "group": "columns", - "weight": 793, "cookies": false, "type": "", "demo": "tablesdb\/create-boolean-column.md", @@ -43980,6 +44610,7 @@ "array": { "type": "boolean", "description": "Is column an array?", + "default": false, "x-example": false } }, @@ -44017,7 +44648,6 @@ "x-appwrite": { "method": "updateBooleanColumn", "group": "columns", - "weight": 794, "cookies": false, "type": "", "demo": "tablesdb\/update-boolean-column.md", @@ -44137,7 +44767,6 @@ "x-appwrite": { "method": "createDatetimeColumn", "group": "columns", - "weight": 795, "cookies": false, "type": "", "demo": "tablesdb\/create-datetime-column.md", @@ -44216,6 +44845,7 @@ "array": { "type": "boolean", "description": "Is column an array?", + "default": false, "x-example": false } }, @@ -44253,7 +44883,6 @@ "x-appwrite": { "method": "updateDatetimeColumn", "group": "columns", - "weight": 796, "cookies": false, "type": "", "demo": "tablesdb\/update-datetime-column.md", @@ -44374,7 +45003,6 @@ "x-appwrite": { "method": "createEmailColumn", "group": "columns", - "weight": 797, "cookies": false, "type": "", "demo": "tablesdb\/create-email-column.md", @@ -44453,6 +45081,7 @@ "array": { "type": "boolean", "description": "Is column an array?", + "default": false, "x-example": false } }, @@ -44490,7 +45119,6 @@ "x-appwrite": { "method": "updateEmailColumn", "group": "columns", - "weight": 798, "cookies": false, "type": "", "demo": "tablesdb\/update-email-column.md", @@ -44611,7 +45239,6 @@ "x-appwrite": { "method": "createEnumColumn", "group": "columns", - "weight": 799, "cookies": false, "type": "", "demo": "tablesdb\/create-enum-column.md", @@ -44697,6 +45324,7 @@ "array": { "type": "boolean", "description": "Is column an array?", + "default": false, "x-example": false } }, @@ -44735,7 +45363,6 @@ "x-appwrite": { "method": "updateEnumColumn", "group": "columns", - "weight": 800, "cookies": false, "type": "", "demo": "tablesdb\/update-enum-column.md", @@ -44864,7 +45491,6 @@ "x-appwrite": { "method": "createFloatColumn", "group": "columns", - "weight": 801, "cookies": false, "type": "", "demo": "tablesdb\/create-float-column.md", @@ -44957,6 +45583,7 @@ "array": { "type": "boolean", "description": "Is column an array?", + "default": false, "x-example": false } }, @@ -44994,7 +45621,6 @@ "x-appwrite": { "method": "updateFloatColumn", "group": "columns", - "weight": 802, "cookies": false, "type": "", "demo": "tablesdb\/update-float-column.md", @@ -45129,7 +45755,6 @@ "x-appwrite": { "method": "createIntegerColumn", "group": "columns", - "weight": 803, "cookies": false, "type": "", "demo": "tablesdb\/create-integer-column.md", @@ -45222,6 +45847,7 @@ "array": { "type": "boolean", "description": "Is column an array?", + "default": false, "x-example": false } }, @@ -45259,7 +45885,6 @@ "x-appwrite": { "method": "updateIntegerColumn", "group": "columns", - "weight": 804, "cookies": false, "type": "", "demo": "tablesdb\/update-integer-column.md", @@ -45394,7 +46019,6 @@ "x-appwrite": { "method": "createIpColumn", "group": "columns", - "weight": 807, "cookies": false, "type": "", "demo": "tablesdb\/create-ip-column.md", @@ -45472,6 +46096,7 @@ "array": { "type": "boolean", "description": "Is column an array?", + "default": false, "x-example": false } }, @@ -45509,7 +46134,6 @@ "x-appwrite": { "method": "updateIpColumn", "group": "columns", - "weight": 808, "cookies": false, "type": "", "demo": "tablesdb\/update-ip-column.md", @@ -45629,7 +46253,6 @@ "x-appwrite": { "method": "createLineColumn", "group": "columns", - "weight": 809, "cookies": false, "type": "", "demo": "tablesdb\/create-line-column.md", @@ -45746,7 +46369,6 @@ "x-appwrite": { "method": "updateLineColumn", "group": "columns", - "weight": 810, "cookies": false, "type": "", "demo": "tablesdb\/update-line-column.md", @@ -45872,7 +46494,6 @@ "x-appwrite": { "method": "createLongtextColumn", "group": "columns", - "weight": 827, "cookies": false, "type": "", "demo": "tablesdb\/create-longtext-column.md", @@ -45950,11 +46571,13 @@ "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 } }, @@ -45992,7 +46615,6 @@ "x-appwrite": { "method": "updateLongtextColumn", "group": "columns", - "weight": 828, "cookies": false, "type": "", "demo": "tablesdb\/update-longtext-column.md", @@ -46112,7 +46734,6 @@ "x-appwrite": { "method": "createMediumtextColumn", "group": "columns", - "weight": 825, "cookies": false, "type": "", "demo": "tablesdb\/create-mediumtext-column.md", @@ -46190,11 +46811,13 @@ "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 } }, @@ -46232,7 +46855,6 @@ "x-appwrite": { "method": "updateMediumtextColumn", "group": "columns", - "weight": 826, "cookies": false, "type": "", "demo": "tablesdb\/update-mediumtext-column.md", @@ -46352,7 +46974,6 @@ "x-appwrite": { "method": "createPointColumn", "group": "columns", - "weight": 811, "cookies": false, "type": "", "demo": "tablesdb\/create-point-column.md", @@ -46469,7 +47090,6 @@ "x-appwrite": { "method": "updatePointColumn", "group": "columns", - "weight": 812, "cookies": false, "type": "", "demo": "tablesdb\/update-point-column.md", @@ -46595,7 +47215,6 @@ "x-appwrite": { "method": "createPolygonColumn", "group": "columns", - "weight": 813, "cookies": false, "type": "", "demo": "tablesdb\/create-polygon-column.md", @@ -46712,7 +47331,6 @@ "x-appwrite": { "method": "updatePolygonColumn", "group": "columns", - "weight": 814, "cookies": false, "type": "", "demo": "tablesdb\/update-polygon-column.md", @@ -46838,7 +47456,6 @@ "x-appwrite": { "method": "createRelationshipColumn", "group": "columns", - "weight": 815, "cookies": false, "type": "", "demo": "tablesdb\/create-relationship-column.md", @@ -46912,12 +47529,12 @@ "manyToMany", "oneToMany" ], - "x-enum-name": "RelationshipType", - "x-enum-keys": [] + "x-enum-name": "RelationshipType" }, "twoWay": { "type": "boolean", "description": "Is Two Way?", + "default": false, "x-example": false }, "key": { @@ -46935,14 +47552,14 @@ "onDelete": { "type": "string", "description": "Constraints option", + "default": "restrict", "x-example": "cascade", "enum": [ "cascade", "restrict", "setNull" ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [] + "x-enum-name": "RelationMutate" } }, "required": [ @@ -46979,7 +47596,6 @@ "x-appwrite": { "method": "createStringColumn", "group": "columns", - "weight": 817, "cookies": false, "type": "", "demo": "tablesdb\/create-string-column.md", @@ -47067,11 +47683,13 @@ "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 } }, @@ -47110,7 +47728,6 @@ "x-appwrite": { "method": "updateStringColumn", "group": "columns", - "weight": 818, "cookies": false, "type": "", "demo": "tablesdb\/update-string-column.md", @@ -47241,7 +47858,6 @@ "x-appwrite": { "method": "createTextColumn", "group": "columns", - "weight": 823, "cookies": false, "type": "", "demo": "tablesdb\/create-text-column.md", @@ -47319,11 +47935,13 @@ "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 } }, @@ -47361,7 +47979,6 @@ "x-appwrite": { "method": "updateTextColumn", "group": "columns", - "weight": 824, "cookies": false, "type": "", "demo": "tablesdb\/update-text-column.md", @@ -47481,7 +48098,6 @@ "x-appwrite": { "method": "createUrlColumn", "group": "columns", - "weight": 819, "cookies": false, "type": "", "demo": "tablesdb\/create-url-column.md", @@ -47560,6 +48176,7 @@ "array": { "type": "boolean", "description": "Is column an array?", + "default": false, "x-example": false } }, @@ -47597,7 +48214,6 @@ "x-appwrite": { "method": "updateUrlColumn", "group": "columns", - "weight": 820, "cookies": false, "type": "", "demo": "tablesdb\/update-url-column.md", @@ -47718,7 +48334,6 @@ "x-appwrite": { "method": "createVarcharColumn", "group": "columns", - "weight": 821, "cookies": false, "type": "", "demo": "tablesdb\/create-varchar-column.md", @@ -47802,11 +48417,13 @@ "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 } }, @@ -47845,7 +48462,6 @@ "x-appwrite": { "method": "updateVarcharColumn", "group": "columns", - "weight": 822, "cookies": false, "type": "", "demo": "tablesdb\/update-varchar-column.md", @@ -48054,7 +48670,6 @@ "x-appwrite": { "method": "getColumn", "group": "columns", - "weight": 790, "cookies": false, "type": "", "demo": "tablesdb\/get-column.md", @@ -48133,7 +48748,6 @@ "x-appwrite": { "method": "deleteColumn", "group": "columns", - "weight": 791, "cookies": false, "type": "", "demo": "tablesdb\/delete-column.md", @@ -48221,7 +48835,6 @@ "x-appwrite": { "method": "updateRelationshipColumn", "group": "columns", - "weight": 816, "cookies": false, "type": "", "demo": "tablesdb\/update-relationship-column.md", @@ -48299,7 +48912,6 @@ "setNull" ], "x-enum-name": "RelationMutate", - "x-enum-keys": [], "x-nullable": true }, "newKey": { @@ -48339,7 +48951,6 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 832, "cookies": false, "type": "", "demo": "tablesdb\/list-indexes.md", @@ -48439,7 +49050,6 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 829, "cookies": false, "type": "", "demo": "tablesdb\/create-index.md", @@ -48512,8 +49122,7 @@ "unique", "spatial" ], - "x-enum-name": "TablesDBIndexType", - "x-enum-keys": [] + "x-enum-name": "TablesDBIndexType" }, "columns": { "type": "array", @@ -48526,6 +49135,7 @@ "orders": { "type": "array", "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], "x-example": null, "items": { "type": "string", @@ -48533,13 +49143,13 @@ "asc", "desc" ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] + "x-enum-name": "OrderBy" } }, "lengths": { "type": "array", "description": "Length of index. Maximum of 100", + "default": [], "x-example": null, "items": { "type": "integer" @@ -48581,7 +49191,6 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 830, "cookies": false, "type": "", "demo": "tablesdb\/get-index.md", @@ -48659,7 +49268,6 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 831, "cookies": false, "type": "", "demo": "tablesdb\/delete-index.md", @@ -48746,7 +49354,6 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 920, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -48871,7 +49478,6 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 833, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -48998,11 +49604,13 @@ "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": { @@ -49017,6 +49625,7 @@ "rows": { "type": "array", "description": "Array of rows data as JSON objects.", + "default": [], "x-example": null, "items": { "type": "object" @@ -49057,7 +49666,6 @@ "x-appwrite": { "method": "upsertRows", "group": "rows", - "weight": 838, "cookies": false, "type": "", "demo": "tablesdb\/upsert-rows.md", @@ -49191,7 +49799,6 @@ "x-appwrite": { "method": "updateRows", "group": "rows", - "weight": 836, "cookies": false, "type": "", "demo": "tablesdb\/update-rows.md", @@ -49251,11 +49858,13 @@ "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" @@ -49296,7 +49905,6 @@ "x-appwrite": { "method": "deleteRows", "group": "rows", - "weight": 840, "cookies": false, "type": "", "demo": "tablesdb\/delete-rows.md", @@ -49356,6 +49964,7 @@ "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" @@ -49398,7 +50007,6 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 834, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -49510,7 +50118,6 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 837, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -49617,6 +50224,7 @@ "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": { @@ -49663,7 +50271,6 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 835, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -49737,6 +50344,7 @@ "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": { @@ -49776,7 +50384,6 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 839, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -49884,7 +50491,6 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 844, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -49967,6 +50573,7 @@ "value": { "type": "number", "description": "Value to increment the column by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -50014,7 +50621,6 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 843, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -50097,6 +50703,7 @@ "value": { "type": "number", "description": "Value to increment the column by. The value must be a number.", + "default": 1, "x-example": null, "format": "float" }, @@ -50144,7 +50751,6 @@ "x-appwrite": { "method": "list", "group": "teams", - "weight": 531, "cookies": false, "type": "", "demo": "teams\/list.md", @@ -50235,7 +50841,6 @@ "x-appwrite": { "method": "create", "group": "teams", - "weight": 529, "cookies": false, "type": "", "demo": "teams\/create.md", @@ -50284,6 +50889,9 @@ "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" @@ -50324,7 +50932,6 @@ "x-appwrite": { "method": "get", "group": "teams", - "weight": 530, "cookies": false, "type": "", "demo": "teams\/get.md", @@ -50390,7 +50997,6 @@ "x-appwrite": { "method": "updateName", "group": "teams", - "weight": 533, "cookies": false, "type": "", "demo": "teams\/update-name.md", @@ -50468,7 +51074,6 @@ "x-appwrite": { "method": "delete", "group": "teams", - "weight": 532, "cookies": false, "type": "", "demo": "teams\/delete.md", @@ -50536,7 +51141,6 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 538, "cookies": false, "type": "", "demo": "teams\/list-memberships.md", @@ -50637,7 +51241,6 @@ "x-appwrite": { "method": "createMembership", "group": "memberships", - "weight": 536, "cookies": false, "type": "", "demo": "teams\/create-membership.md", @@ -50688,17 +51291,20 @@ "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" }, @@ -50713,12 +51319,14 @@ "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>" } }, @@ -50755,7 +51363,6 @@ "x-appwrite": { "method": "getMembership", "group": "memberships", - "weight": 537, "cookies": false, "type": "", "demo": "teams\/get-membership.md", @@ -50831,7 +51438,6 @@ "x-appwrite": { "method": "updateMembership", "group": "memberships", - "weight": 539, "cookies": false, "type": "", "demo": "teams\/update-membership.md", @@ -50922,7 +51528,6 @@ "x-appwrite": { "method": "deleteMembership", "group": "memberships", - "weight": 1209, "cookies": false, "type": "", "demo": "teams\/delete-membership.md", @@ -51000,7 +51605,6 @@ "x-appwrite": { "method": "updateMembershipStatus", "group": "memberships", - "weight": 541, "cookies": false, "type": "", "demo": "teams\/update-membership-status.md", @@ -51101,7 +51705,6 @@ "x-appwrite": { "method": "getPrefs", "group": "teams", - "weight": 534, "cookies": false, "type": "", "demo": "teams\/get-prefs.md", @@ -51165,7 +51768,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "teams", - "weight": 535, "cookies": false, "type": "", "demo": "teams\/update-prefs.md", @@ -51250,7 +51852,6 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 545, "cookies": false, "type": "", "demo": "tokens\/list.md", @@ -51345,7 +51946,6 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 543, "cookies": false, "type": "", "demo": "tokens\/create-file-token.md", @@ -51436,7 +52036,6 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 544, "cookies": false, "type": "", "demo": "tokens\/get.md", @@ -51497,7 +52096,6 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 546, "cookies": false, "type": "", "demo": "tokens\/update.md", @@ -51569,7 +52167,6 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 547, "cookies": false, "type": "", "demo": "tokens\/delete.md", @@ -51632,7 +52229,6 @@ "x-appwrite": { "method": "listEvents", "group": "events", - "weight": 1221, "cookies": false, "type": "", "demo": "usage\/list-events.md", @@ -51709,7 +52305,6 @@ "x-appwrite": { "method": "listGauges", "group": "gauges", - "weight": 1222, "cookies": false, "type": "", "demo": "usage\/list-gauges.md", @@ -51786,7 +52381,6 @@ "x-appwrite": { "method": "list", "group": "users", - "weight": 70, "cookies": false, "type": "", "demo": "users\/list.md", @@ -51873,7 +52467,6 @@ "x-appwrite": { "method": "create", "group": "users", - "weight": 61, "cookies": false, "type": "", "demo": "users\/create.md", @@ -51927,11 +52520,13 @@ "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>" } }, @@ -51968,7 +52563,6 @@ "x-appwrite": { "method": "createArgon2User", "group": "users", - "weight": 64, "cookies": false, "type": "", "demo": "users\/create-argon-2-user.md", @@ -52020,6 +52614,7 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "<NAME>" } }, @@ -52058,7 +52653,6 @@ "x-appwrite": { "method": "createBcryptUser", "group": "users", - "weight": 62, "cookies": false, "type": "", "demo": "users\/create-bcrypt-user.md", @@ -52110,6 +52704,7 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "<NAME>" } }, @@ -52148,7 +52743,6 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 78, "cookies": false, "type": "", "demo": "users\/list-identities.md", @@ -52230,7 +52824,6 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 102, "cookies": false, "type": "", "demo": "users\/delete-identity.md", @@ -52294,7 +52887,6 @@ "x-appwrite": { "method": "createMD5User", "group": "users", - "weight": 63, "cookies": false, "type": "", "demo": "users\/create-md-5-user.md", @@ -52346,6 +52938,7 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "<NAME>" } }, @@ -52384,7 +52977,6 @@ "x-appwrite": { "method": "createPHPassUser", "group": "users", - "weight": 66, "cookies": false, "type": "", "demo": "users\/create-ph-pass-user.md", @@ -52436,6 +53028,7 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "<NAME>" } }, @@ -52474,7 +53067,6 @@ "x-appwrite": { "method": "createScryptUser", "group": "users", - "weight": 67, "cookies": false, "type": "", "demo": "users\/create-scrypt-user.md", @@ -52555,6 +53147,7 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "<NAME>" } }, @@ -52598,7 +53191,6 @@ "x-appwrite": { "method": "createScryptModifiedUser", "group": "users", - "weight": 68, "cookies": false, "type": "", "demo": "users\/create-scrypt-modified-user.md", @@ -52665,6 +53257,7 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "<NAME>" } }, @@ -52706,7 +53299,6 @@ "x-appwrite": { "method": "createSHAUser", "group": "users", - "weight": 65, "cookies": false, "type": "", "demo": "users\/create-sha-user.md", @@ -52772,12 +53364,12 @@ "sha3-384", "sha3-512" ], - "x-enum-name": "PasswordHash", - "x-enum-keys": [] + "x-enum-name": "PasswordHash" }, "name": { "type": "string", "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "<NAME>" } }, @@ -52816,7 +53408,6 @@ "x-appwrite": { "method": "get", "group": "users", - "weight": 71, "cookies": false, "type": "", "demo": "users\/get.md", @@ -52871,7 +53462,6 @@ "x-appwrite": { "method": "delete", "group": "users", - "weight": 100, "cookies": false, "type": "", "demo": "users\/delete.md", @@ -52935,7 +53525,6 @@ "x-appwrite": { "method": "updateEmail", "group": "users", - "weight": 85, "cookies": false, "type": "", "demo": "users\/update-email.md", @@ -53019,7 +53608,6 @@ "x-appwrite": { "method": "updateImpersonator", "group": "users", - "weight": 81, "cookies": false, "type": "", "demo": "users\/update-impersonator.md", @@ -53102,7 +53690,6 @@ "x-appwrite": { "method": "createJWT", "group": "sessions", - "weight": 103, "cookies": false, "type": "", "demo": "users\/create-jwt.md", @@ -53149,11 +53736,13 @@ "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" } @@ -53188,7 +53777,6 @@ "x-appwrite": { "method": "updateLabels", "group": "users", - "weight": 80, "cookies": false, "type": "", "demo": "users\/update-labels.md", @@ -53274,7 +53862,6 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 76, "cookies": false, "type": "", "demo": "users\/list-logs.md", @@ -53362,7 +53949,6 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 75, "cookies": false, "type": "", "demo": "users\/list-memberships.md", @@ -53461,7 +54047,6 @@ "x-appwrite": { "method": "updateMfa", "group": "users", - "weight": 90, "cookies": false, "type": "", "demo": "users\/update-mfa.md", @@ -53599,7 +54184,6 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 95, "cookies": false, "type": "", "demo": "users\/delete-mfa-authenticator.md", @@ -53706,8 +54290,7 @@ "enum": [ "totp" ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-enum-name": "AuthenticatorType" }, "in": "path" } @@ -53738,7 +54321,6 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 91, "cookies": false, "type": "", "demo": "users\/list-mfa-factors.md", @@ -53860,7 +54442,6 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 92, "cookies": false, "type": "", "demo": "users\/get-mfa-recovery-codes.md", @@ -53980,7 +54561,6 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 94, "cookies": false, "type": "", "demo": "users\/update-mfa-recovery-codes.md", @@ -54100,7 +54680,6 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 93, "cookies": false, "type": "", "demo": "users\/create-mfa-recovery-codes.md", @@ -54222,7 +54801,6 @@ "x-appwrite": { "method": "updateName", "group": "users", - "weight": 83, "cookies": false, "type": "", "demo": "users\/update-name.md", @@ -54305,7 +54883,6 @@ "x-appwrite": { "method": "updatePassword", "group": "users", - "weight": 84, "cookies": false, "type": "", "demo": "users\/update-password.md", @@ -54388,7 +54965,6 @@ "x-appwrite": { "method": "updatePhone", "group": "users", - "weight": 86, "cookies": false, "type": "", "demo": "users\/update-phone.md", @@ -54472,7 +55048,6 @@ "x-appwrite": { "method": "getPrefs", "group": "users", - "weight": 72, "cookies": false, "type": "", "demo": "users\/get-prefs.md", @@ -54534,7 +55109,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "users", - "weight": 88, "cookies": false, "type": "", "demo": "users\/update-prefs.md", @@ -54617,7 +55191,6 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 74, "cookies": false, "type": "", "demo": "users\/list-sessions.md", @@ -54693,7 +55266,6 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 96, "cookies": false, "type": "", "demo": "users\/create-session.md", @@ -54751,7 +55323,6 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 99, "cookies": false, "type": "", "demo": "users\/delete-sessions.md", @@ -54811,7 +55382,6 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 98, "cookies": false, "type": "", "demo": "users\/delete-session.md", @@ -54888,7 +55458,6 @@ "x-appwrite": { "method": "updateStatus", "group": "users", - "weight": 79, "cookies": false, "type": "", "demo": "users\/update-status.md", @@ -54971,7 +55540,6 @@ "x-appwrite": { "method": "listTargets", "group": "targets", - "weight": 77, "cookies": false, "type": "", "demo": "users\/list-targets.md", @@ -55057,7 +55625,6 @@ "x-appwrite": { "method": "createTarget", "group": "targets", - "weight": 69, "cookies": false, "type": "", "demo": "users\/create-target.md", @@ -55115,8 +55682,7 @@ "sms", "push" ], - "x-enum-name": "MessagingProviderType", - "x-enum-keys": [] + "x-enum-name": "MessagingProviderType" }, "identifier": { "type": "string", @@ -55126,11 +55692,13 @@ "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>" } }, @@ -55169,7 +55737,6 @@ "x-appwrite": { "method": "getTarget", "group": "targets", - "weight": 73, "cookies": false, "type": "", "demo": "users\/get-target.md", @@ -55241,7 +55808,6 @@ "x-appwrite": { "method": "updateTarget", "group": "targets", - "weight": 89, "cookies": false, "type": "", "demo": "users\/update-target.md", @@ -55298,16 +55864,19 @@ "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>" } } @@ -55332,7 +55901,6 @@ "x-appwrite": { "method": "deleteTarget", "group": "targets", - "weight": 101, "cookies": false, "type": "", "demo": "users\/delete-target.md", @@ -55406,7 +55974,6 @@ "x-appwrite": { "method": "createToken", "group": "sessions", - "weight": 97, "cookies": false, "type": "", "demo": "users\/create-token.md", @@ -55453,12 +56020,14 @@ "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" } @@ -55493,7 +56062,6 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "users", - "weight": 87, "cookies": false, "type": "", "demo": "users\/update-email-verification.md", @@ -55576,7 +56144,6 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "users", - "weight": 82, "cookies": false, "type": "", "demo": "users\/update-phone-verification.md", @@ -55659,7 +56226,6 @@ "x-appwrite": { "method": "list", "group": "vectorsdb", - "weight": 889, "cookies": false, "type": "", "demo": "vectorsdb\/list.md", @@ -55699,17 +56265,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.", @@ -55746,7 +56301,6 @@ "x-appwrite": { "method": "create", "group": "vectorsdb", - "weight": 885, "cookies": false, "type": "", "demo": "vectorsdb\/create.md", @@ -55791,6 +56345,7 @@ "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 } }, @@ -55828,7 +56383,6 @@ "x-appwrite": { "method": "createTextEmbeddings", "group": "documents", - "weight": 911, "cookies": false, "type": "", "demo": "vectorsdb\/create-text-embeddings.md", @@ -55900,12 +56454,12 @@ "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": [] + "x-enum-name": "EmbeddingModel" } }, "required": [ @@ -55941,7 +56495,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 916, "cookies": false, "type": "", "demo": "vectorsdb\/list-transactions.md", @@ -56010,7 +56563,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 912, "cookies": false, "type": "", "demo": "vectorsdb\/create-transaction.md", @@ -56049,6 +56601,7 @@ "ttl": { "type": "integer", "description": "Seconds before the transaction expires.", + "default": 300, "x-example": 60, "format": "int32" } @@ -56083,7 +56636,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 913, "cookies": false, "type": "", "demo": "vectorsdb\/get-transaction.md", @@ -56149,7 +56701,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 914, "cookies": false, "type": "", "demo": "vectorsdb\/update-transaction.md", @@ -56200,11 +56751,13 @@ "commit": { "type": "boolean", "description": "Commit transaction?", + "default": false, "x-example": false }, "rollback": { "type": "boolean", "description": "Rollback transaction?", + "default": false, "x-example": false } } @@ -56229,7 +56782,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 915, "cookies": false, "type": "", "demo": "vectorsdb\/delete-transaction.md", @@ -56297,7 +56849,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 917, "cookies": false, "type": "", "demo": "vectorsdb\/create-operations.md", @@ -56348,6 +56899,7 @@ "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" @@ -56384,7 +56936,6 @@ "x-appwrite": { "method": "get", "group": "vectorsdb", - "weight": 886, "cookies": false, "type": "", "demo": "vectorsdb\/get.md", @@ -56446,7 +56997,6 @@ "x-appwrite": { "method": "update", "group": "vectorsdb", - "weight": 887, "cookies": false, "type": "", "demo": "vectorsdb\/update.md", @@ -56498,6 +57048,7 @@ "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 } }, @@ -56525,7 +57076,6 @@ "x-appwrite": { "method": "delete", "group": "vectorsdb", - "weight": 888, "cookies": false, "type": "", "demo": "vectorsdb\/delete.md", @@ -56589,7 +57139,6 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 896, "cookies": false, "type": "", "demo": "vectorsdb\/list-collections.md", @@ -56686,7 +57235,6 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 892, "cookies": false, "type": "", "demo": "vectorsdb\/create-collection.md", @@ -56757,11 +57305,13 @@ "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 } }, @@ -56800,7 +57350,6 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 893, "cookies": false, "type": "", "demo": "vectorsdb\/get-collection.md", @@ -56872,7 +57421,6 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 894, "cookies": false, "type": "", "demo": "vectorsdb\/update-collection.md", @@ -56948,11 +57496,13 @@ "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 } }, @@ -56980,7 +57530,6 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 895, "cookies": false, "type": "", "demo": "vectorsdb\/delete-collection.md", @@ -57054,7 +57603,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 906, "cookies": false, "type": "", "demo": "vectorsdb\/list-documents.md", @@ -57176,7 +57724,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 902, "cookies": false, "type": "", "demo": "vectorsdb\/create-document.md", @@ -57298,11 +57845,13 @@ "documentId": { "type": "string", "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", "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": { @@ -57316,6 +57865,7 @@ "documents": { "type": "array", "description": "Array of documents data as JSON objects.", + "default": [], "x-example": null, "items": { "type": "object" @@ -57355,7 +57905,6 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 909, "cookies": false, "type": "", "demo": "vectorsdb\/upsert-documents.md", @@ -57485,7 +58034,6 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 908, "cookies": false, "type": "", "demo": "vectorsdb\/update-documents.md", @@ -57542,11 +58090,13 @@ "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" @@ -57586,7 +58136,6 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 910, "cookies": false, "type": "", "demo": "vectorsdb\/delete-documents.md", @@ -57643,6 +58192,7 @@ "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" @@ -57684,7 +58234,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 905, "cookies": false, "type": "", "demo": "vectorsdb\/get-document.md", @@ -57793,7 +58342,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 904, "cookies": false, "type": "", "demo": "vectorsdb\/upsert-document.md", @@ -57897,6 +58445,7 @@ "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": { @@ -57941,7 +58490,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 903, "cookies": false, "type": "", "demo": "vectorsdb\/update-document.md", @@ -58012,6 +58560,7 @@ "data": { "type": "object", "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "default": {}, "x-example": "{}" }, "permissions": { @@ -58049,7 +58598,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 907, "cookies": false, "type": "", "demo": "vectorsdb\/delete-document.md", @@ -58153,7 +58701,6 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 901, "cookies": false, "type": "", "demo": "vectorsdb\/list-indexes.md", @@ -58249,7 +58796,6 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 898, "cookies": false, "type": "", "demo": "vectorsdb\/create-index.md", @@ -58320,8 +58866,7 @@ "key", "unique" ], - "x-enum-name": "VectorsDBIndexType", - "x-enum-keys": [] + "x-enum-name": "VectorsDBIndexType" }, "attributes": { "type": "array", @@ -58334,6 +58879,7 @@ "orders": { "type": "array", "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], "x-example": null, "items": { "type": "string", @@ -58341,13 +58887,13 @@ "asc", "desc" ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] + "x-enum-name": "OrderBy" } }, "lengths": { "type": "array", "description": "Length of index. Maximum of 100", + "default": [], "x-example": null, "items": { "type": "integer" @@ -58389,7 +58935,6 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 899, "cookies": false, "type": "", "demo": "vectorsdb\/get-index.md", @@ -58463,7 +59008,6 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 900, "cookies": false, "type": "", "demo": "vectorsdb\/delete-index.md", @@ -58546,7 +59090,6 @@ "x-appwrite": { "method": "list", "group": null, - "weight": 578, "cookies": false, "type": "", "demo": "webhooks\/list.md", @@ -58621,7 +59164,6 @@ "x-appwrite": { "method": "create", "group": null, - "weight": 577, "cookies": false, "type": "", "demo": "webhooks\/create.md", @@ -58678,21 +59220,25 @@ "enabled": { "type": "boolean", "description": "Enable or disable a webhook.", + "default": true, "x-example": false }, "tls": { "type": "boolean", "description": "Certificate verification, false for disabled or true for enabled.", + "default": false, "x-example": false }, "authUsername": { "type": "string", "description": "Webhook HTTP user. Max length: 256 chars.", + "default": "", "x-example": "<AUTH_USERNAME>" }, "authPassword": { "type": "string", "description": "Webhook HTTP password. Max length: 256 chars.", + "default": "", "x-example": "<AUTH_PASSWORD>" }, "secret": { @@ -58738,7 +59284,6 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 579, "cookies": false, "type": "", "demo": "webhooks\/get.md", @@ -58799,7 +59344,6 @@ "x-appwrite": { "method": "update", "group": null, - "weight": 581, "cookies": false, "type": "", "demo": "webhooks\/update.md", @@ -58863,21 +59407,25 @@ "enabled": { "type": "boolean", "description": "Enable or disable a webhook.", + "default": true, "x-example": false }, "tls": { "type": "boolean", "description": "Certificate verification, false for disabled or true for enabled.", + "default": false, "x-example": false }, "authUsername": { "type": "string", "description": "Webhook HTTP user. Max length: 256 chars.", + "default": "", "x-example": "<AUTH_USERNAME>" }, "authPassword": { "type": "string", "description": "Webhook HTTP password. Max length: 256 chars.", + "default": "", "x-example": "<AUTH_PASSWORD>" } }, @@ -58907,7 +59455,6 @@ "x-appwrite": { "method": "delete", "group": null, - "weight": 580, "cookies": false, "type": "", "demo": "webhooks\/delete.md", @@ -58970,7 +59517,6 @@ "x-appwrite": { "method": "updateSecret", "group": null, - "weight": 582, "cookies": false, "type": "", "demo": "webhooks\/update-secret.md", @@ -59795,6 +60341,34 @@ "executions": "" } }, + "projectList": { + "description": "Projects List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "x-example": 5, + "format": "int32" + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "$ref": "#\/components\/schemas\/project" + }, + "x-example": "" + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, "webhookList": { "description": "Webhooks List", "type": "object", @@ -66688,6 +67262,12 @@ "x-example": 17890, "format": "int32" }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "x-example": 12345, + "format": "int32" + }, "chunksTotal": { "type": "integer", "description": "Total number of chunks available", @@ -66721,6 +67301,7 @@ "signature", "mimeType", "sizeOriginal", + "sizeActual", "chunksTotal", "chunksUploaded", "encryption", @@ -66738,6 +67319,7 @@ "signature": "5d529fd02b544198ae075bd57c1762bb", "mimeType": "image\/png", "sizeOriginal": 17890, + "sizeActual": 12345, "chunksTotal": 17890, "chunksUploaded": 17890, "encryption": true, @@ -67250,6 +67832,28 @@ "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", "x-example": false }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "x-example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "x-example": [ + "src\/**", + "!docs\/**" + ] + }, "buildSpecification": { "type": "string", "description": "Machine specification for deployment builds.", @@ -67304,6 +67908,8 @@ "providerBranch", "providerRootDirectory", "providerSilentMode", + "providerBranches", + "providerPaths", "buildSpecification", "runtimeSpecification", "buildRuntime", @@ -67338,6 +67944,14 @@ "providerBranch": "main", "providerRootDirectory": "sites\/helloWorld", "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], "buildSpecification": "s-1vcpu-512mb", "runtimeSpecification": "s-1vcpu-512mb", "buildRuntime": "node-22", @@ -67503,6 +68117,28 @@ "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", "x-example": false }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "x-example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "x-example": [ + "src\/**", + "!docs\/**" + ] + }, "buildSpecification": { "type": "string", "description": "Machine specification for deployment builds.", @@ -67543,6 +68179,8 @@ "providerBranch", "providerRootDirectory", "providerSilentMode", + "providerBranches", + "providerPaths", "buildSpecification", "runtimeSpecification" ], @@ -67575,6 +68213,14 @@ "providerBranch": "main", "providerRootDirectory": "functions\/helloWorld", "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], "buildSpecification": "s-1vcpu-512mb", "runtimeSpecification": "s-1vcpu-512mb" } @@ -68305,7 +68951,8 @@ "x-example": "", "items": { "$ref": "#\/components\/schemas\/billingLimits" - } + }, + "nullable": true }, "blocks": { "type": "array", @@ -68346,7 +68993,6 @@ "services", "protocols", "region", - "billingLimits", "blocks", "consoleAccessedAt" ], @@ -72915,24 +73561,24 @@ "description": "Event ID.", "x-example": "5e5ea5c16897e" }, - "userType": { + "actorType": { "type": "string", - "description": "User type.", + "description": "Actor type.", "x-example": "user" }, - "userId": { + "actorId": { "type": "string", - "description": "User ID.", + "description": "Actor ID.", "x-example": "610fc2f985ee0" }, - "userEmail": { + "actorEmail": { "type": "string", - "description": "User Email.", + "description": "Actor Email.", "x-example": "john@appwrite.io" }, - "userName": { + "actorName": { "type": "string", - "description": "User Name.", + "description": "Actor Name.", "x-example": "John Doe" }, "resourceParent": { @@ -73073,10 +73719,10 @@ }, "required": [ "$id", - "userType", - "userId", - "userEmail", - "userName", + "actorType", + "actorId", + "actorEmail", + "actorName", "resourceParent", "resourceType", "resourceId", @@ -73107,10 +73753,10 @@ ], "example": { "$id": "5e5ea5c16897e", - "userType": "user", - "userId": "610fc2f985ee0", - "userEmail": "john@appwrite.io", - "userName": "John Doe", + "actorType": "user", + "actorId": "610fc2f985ee0", + "actorEmail": "john@appwrite.io", + "actorName": "John Doe", "resourceParent": "database\/ID", "resourceType": "collection", "resourceId": "610fc2f985ee0", @@ -73242,68 +73888,66 @@ } }, "billingLimits": { - "description": "BillingLimits", + "description": "Limits", "type": "object", "properties": { "bandwidth": { "type": "integer", "description": "Bandwidth limit", "x-example": 5, - "format": "int32" + "format": "int32", + "nullable": true }, "storage": { "type": "integer", "description": "Storage limit", "x-example": 150, - "format": "int32" + "format": "int32", + "nullable": true }, "users": { "type": "integer", "description": "Users limit", "x-example": 200000, - "format": "int32" + "format": "int32", + "nullable": true }, "executions": { "type": "integer", "description": "Executions limit", "x-example": 750000, - "format": "int32" + "format": "int32", + "nullable": true }, "GBHours": { "type": "integer", "description": "GBHours limit", "x-example": 100, - "format": "int32" + "format": "int32", + "nullable": true }, "imageTransformations": { "type": "integer", "description": "Image transformations limit", "x-example": 100, - "format": "int32" + "format": "int32", + "nullable": true }, "authPhone": { "type": "integer", "description": "Auth phone limit", "x-example": 10, - "format": "int32" + "format": "int32", + "nullable": true }, "budgetLimit": { "type": "integer", "description": "Budget limit percentage", "x-example": 100, - "format": "int32" + "format": "int32", + "nullable": true } }, - "required": [ - "bandwidth", - "storage", - "users", - "executions", - "GBHours", - "imageTransformations", - "authPhone", - "budgetLimit" - ], "example": { "bandwidth": 5, "storage": 150, @@ -73663,34 +74307,6 @@ "userAgent": "AppwriteSDK\/1.0" } }, - "usageEventList": { - "description": "Usage events list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of events that matched your query.", - "x-example": 5, - "format": "int32" - }, - "events": { - "type": "array", - "description": "List of events.", - "items": { - "$ref": "#\/components\/schemas\/usageEvent" - }, - "x-example": "" - } - }, - "required": [ - "total", - "events" - ], - "example": { - "total": 5, - "events": "" - } - }, "usageGauge": { "description": "usageGauge", "type": "object", @@ -73723,34 +74339,6 @@ "time": "2026-04-09T12:00:00.000+00:00" } }, - "usageGaugeList": { - "description": "Usage gauges list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of gauges that matched your query.", - "x-example": 5, - "format": "int32" - }, - "gauges": { - "type": "array", - "description": "List of gauges.", - "items": { - "$ref": "#\/components\/schemas\/usageGauge" - }, - "x-example": "" - } - }, - "required": [ - "total", - "gauges" - ], - "example": { - "total": 5, - "gauges": "" - } - }, "activityEventList": { "description": "Activity event list", "type": "object", @@ -73862,6 +74450,62 @@ "total": 5, "restorations": "" } + }, + "usageEventList": { + "description": "Usage events list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of events that matched your query.", + "x-example": 5, + "format": "int32" + }, + "events": { + "type": "array", + "description": "List of events.", + "items": { + "$ref": "#\/components\/schemas\/usageEvent" + }, + "x-example": "" + } + }, + "required": [ + "total", + "events" + ], + "example": { + "total": 5, + "events": "" + } + }, + "usageGaugeList": { + "description": "Usage gauges list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of gauges that matched your query.", + "x-example": 5, + "format": "int32" + }, + "gauges": { + "type": "array", + "description": "List of gauges.", + "items": { + "$ref": "#\/components\/schemas\/usageGauge" + }, + "x-example": "" + } + }, + "required": [ + "total", + "gauges" + ], + "example": { + "total": 5, + "gauges": "" + } } }, "securitySchemes": { diff --git a/specs/latest/swagger2-latest-client.json b/specs/latest/swagger2-latest-client.json index 1778a4133..b97ecaf3b 100644 --- a/specs/latest/swagger2-latest-client.json +++ b/specs/latest/swagger2-latest-client.json @@ -118,7 +118,6 @@ "x-appwrite": { "method": "get", "group": "account", - "weight": 9, "cookies": false, "type": "", "demo": "account\/get.md", @@ -171,7 +170,6 @@ "x-appwrite": { "method": "create", "group": "account", - "weight": 8, "cookies": false, "type": "", "demo": "account\/create.md", @@ -208,20 +206,17 @@ "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": "New user password. Must be between 8 and 256 chars.", - "default": null, "x-example": null }, "name": { @@ -267,7 +262,6 @@ "x-appwrite": { "method": "updateEmail", "group": "account", - "weight": 34, "cookies": false, "type": "", "demo": "account\/update-email.md", @@ -304,14 +298,12 @@ "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, "password": { "type": "string", "description": "User password. Must be at least 8 chars.", - "default": null, "x-example": "password", "format": "password" } @@ -349,7 +341,6 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 47, "cookies": false, "type": "", "demo": "account\/list-identities.md", @@ -422,7 +413,6 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 48, "cookies": false, "type": "", "demo": "account\/delete-identity.md", @@ -487,7 +477,6 @@ "x-appwrite": { "method": "createJWT", "group": "tokens", - "weight": 29, "cookies": false, "type": "", "demo": "account\/create-jwt.md", @@ -558,7 +547,6 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 31, "cookies": false, "type": "", "demo": "account\/list-logs.md", @@ -636,7 +624,6 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 165, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -673,7 +660,6 @@ "mfa": { "type": "boolean", "description": "Enable or disable MFA.", - "default": null, "x-example": false } }, @@ -711,7 +697,6 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 167, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -805,7 +790,6 @@ "totp" ], "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], "in": "path" } ] @@ -835,7 +819,6 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 168, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -933,7 +916,6 @@ "totp" ], "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], "in": "path" }, { @@ -945,7 +927,6 @@ "otp": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<OTP>" } }, @@ -976,7 +957,6 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 169, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -1068,7 +1048,6 @@ "totp" ], "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], "in": "path" } ] @@ -1100,7 +1079,6 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 173, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -1193,7 +1171,6 @@ "factor": { "type": "string", "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`.", - "default": null, "x-example": "email", "enum": [ "email", @@ -1201,8 +1178,7 @@ "totp", "recoverycode" ], - "x-enum-name": "AuthenticationFactor", - "x-enum-keys": [] + "x-enum-name": "AuthenticationFactor" } }, "required": [ @@ -1237,7 +1213,6 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 174, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -1334,13 +1309,11 @@ "challengeId": { "type": "string", "description": "ID of the challenge.", - "default": null, "x-example": "<CHALLENGE_ID>" }, "otp": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<OTP>" } }, @@ -1377,7 +1350,6 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 166, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -1478,7 +1450,6 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 172, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -1579,7 +1550,6 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 170, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -1680,7 +1650,6 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 171, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -1783,7 +1752,6 @@ "x-appwrite": { "method": "updateName", "group": "account", - "weight": 32, "cookies": false, "type": "", "demo": "account\/update-name.md", @@ -1820,7 +1788,6 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" } }, @@ -1858,7 +1825,6 @@ "x-appwrite": { "method": "updatePassword", "group": "account", - "weight": 33, "cookies": false, "type": "", "demo": "account\/update-password.md", @@ -1895,7 +1861,6 @@ "password": { "type": "string", "description": "New user password. Must be at least 8 chars.", - "default": null, "x-example": null }, "oldPassword": { @@ -1940,7 +1905,6 @@ "x-appwrite": { "method": "updatePhone", "group": "account", - "weight": 35, "cookies": false, "type": "", "demo": "account\/update-phone.md", @@ -1977,14 +1941,12 @@ "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" }, "password": { "type": "string", "description": "User password. Must be at least 8 chars.", - "default": null, "x-example": "password", "format": "password" } @@ -2022,7 +1984,6 @@ "x-appwrite": { "method": "getPrefs", "group": "account", - "weight": 30, "cookies": false, "type": "", "demo": "account\/get-prefs.md", @@ -2075,7 +2036,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "account", - "weight": 36, "cookies": false, "type": "", "demo": "account\/update-prefs.md", @@ -2150,7 +2110,6 @@ "x-appwrite": { "method": "createRecovery", "group": "recovery", - "weight": 38, "cookies": false, "type": "", "demo": "account\/create-recovery.md", @@ -2190,14 +2149,12 @@ "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, "url": { "type": "string", "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "default": null, "x-example": "https:\/\/example.com", "format": "url" } @@ -2235,7 +2192,6 @@ "x-appwrite": { "method": "updateRecovery", "group": "recovery", - "weight": 39, "cookies": false, "type": "", "demo": "account\/update-recovery.md", @@ -2272,19 +2228,16 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "secret": { "type": "string", "description": "Valid reset token.", - "default": null, "x-example": "<SECRET>" }, "password": { "type": "string", "description": "New user password. Must be between 8 and 256 chars.", - "default": null, "x-example": null } }, @@ -2322,7 +2275,6 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 11, "cookies": false, "type": "", "demo": "account\/list-sessions.md", @@ -2370,7 +2322,6 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 12, "cookies": false, "type": "", "demo": "account\/delete-sessions.md", @@ -2425,7 +2376,6 @@ "x-appwrite": { "method": "createAnonymousSession", "group": "sessions", - "weight": 17, "cookies": false, "type": "", "demo": "account\/create-anonymous-session.md", @@ -2480,7 +2430,6 @@ "x-appwrite": { "method": "createEmailPasswordSession", "group": "sessions", - "weight": 16, "cookies": false, "type": "", "demo": "account\/create-email-password-session.md", @@ -2517,14 +2466,12 @@ "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, "password": { "type": "string", "description": "User password. Must be at least 8 chars.", - "default": null, "x-example": "password", "format": "password" } @@ -2564,7 +2511,6 @@ "x-appwrite": { "method": "updateMagicURLSession", "group": "sessions", - "weight": 26, "cookies": false, "type": "", "demo": "account\/update-magic-url-session.md", @@ -2605,13 +2551,11 @@ "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>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -2645,7 +2589,6 @@ "x-appwrite": { "method": "createOAuth2Session", "group": "sessions", - "weight": 19, "cookies": false, "type": "webAuth", "demo": "account\/create-o-auth-2-session.md", @@ -2725,7 +2668,6 @@ "zoom" ], "x-enum-name": "OAuthProvider", - "x-enum-keys": [], "in": "path" }, { @@ -2789,7 +2731,6 @@ "x-appwrite": { "method": "updatePhoneSession", "group": "sessions", - "weight": 27, "cookies": false, "type": "", "demo": "account\/update-phone-session.md", @@ -2830,13 +2771,11 @@ "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>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -2875,7 +2814,6 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 18, "cookies": false, "type": "", "demo": "account\/create-session.md", @@ -2912,13 +2850,11 @@ "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>" }, "secret": { "type": "string", "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", - "default": null, "x-example": "<SECRET>" } }, @@ -2955,7 +2891,6 @@ "x-appwrite": { "method": "getSession", "group": "sessions", - "weight": 13, "cookies": false, "type": "", "demo": "account\/get-session.md", @@ -3018,7 +2953,6 @@ "x-appwrite": { "method": "updateSession", "group": "sessions", - "weight": 15, "cookies": false, "type": "", "demo": "account\/update-session.md", @@ -3076,7 +3010,6 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 14, "cookies": false, "type": "", "demo": "account\/delete-session.md", @@ -3141,7 +3074,6 @@ "x-appwrite": { "method": "updateStatus", "group": "account", - "weight": 37, "cookies": false, "type": "", "demo": "account\/update-status.md", @@ -3196,7 +3128,6 @@ "x-appwrite": { "method": "createPushTarget", "group": "pushTargets", - "weight": 44, "cookies": false, "type": "", "demo": "account\/create-push-target.md", @@ -3231,13 +3162,11 @@ "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>" }, "identifier": { "type": "string", "description": "The target identifier (token, email, phone etc.)", - "default": null, "x-example": "<IDENTIFIER>" }, "providerId": { @@ -3282,7 +3211,6 @@ "x-appwrite": { "method": "updatePushTarget", "group": "pushTargets", - "weight": 45, "cookies": false, "type": "", "demo": "account\/update-push-target.md", @@ -3325,7 +3253,6 @@ "identifier": { "type": "string", "description": "The target identifier (token, email, phone etc.)", - "default": null, "x-example": "<IDENTIFIER>" } }, @@ -3356,7 +3283,6 @@ "x-appwrite": { "method": "deletePushTarget", "group": "pushTargets", - "weight": 46, "cookies": false, "type": "", "demo": "account\/delete-push-target.md", @@ -3419,7 +3345,6 @@ "x-appwrite": { "method": "createEmailToken", "group": "tokens", - "weight": 25, "cookies": false, "type": "", "demo": "account\/create-email-token.md", @@ -3459,13 +3384,11 @@ "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. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "default": null, "x-example": "<USER_ID>" }, "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, @@ -3511,7 +3434,6 @@ "x-appwrite": { "method": "createMagicURLToken", "group": "tokens", - "weight": 24, "cookies": false, "type": "", "demo": "account\/create-magic-url-token.md", @@ -3551,13 +3473,11 @@ "userId": { "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. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "default": null, "x-example": "<USER_ID>" }, "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, @@ -3605,7 +3525,6 @@ "x-appwrite": { "method": "createOAuth2Token", "group": "tokens", - "weight": 23, "cookies": false, "type": "webAuth", "demo": "account\/create-o-auth-2-token.md", @@ -3685,7 +3604,6 @@ "zoom" ], "x-enum-name": "OAuthProvider", - "x-enum-keys": [], "in": "path" }, { @@ -3749,7 +3667,6 @@ "x-appwrite": { "method": "createPhoneToken", "group": "tokens", - "weight": 28, "cookies": false, "type": "", "demo": "account\/create-phone-token.md", @@ -3789,13 +3706,11 @@ "userId": { "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. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", - "default": null, "x-example": "<USER_ID>" }, "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" } @@ -3835,7 +3750,6 @@ "x-appwrite": { "method": "createEmailVerification", "group": "verification", - "weight": 40, "cookies": false, "type": "", "demo": "account\/create-email-verification.md", @@ -3924,7 +3838,6 @@ "url": { "type": "string", "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "default": null, "x-example": "https:\/\/example.com", "format": "url" } @@ -3961,7 +3874,6 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "verification", - "weight": 41, "cookies": false, "type": "", "demo": "account\/update-email-verification.md", @@ -4054,13 +3966,11 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -4099,7 +4009,6 @@ "x-appwrite": { "method": "createPhoneVerification", "group": "verification", - "weight": 42, "cookies": false, "type": "", "demo": "account\/create-phone-verification.md", @@ -4155,7 +4064,6 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "verification", - "weight": 43, "cookies": false, "type": "", "demo": "account\/update-phone-verification.md", @@ -4192,13 +4100,11 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -4235,7 +4141,6 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 176, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -4361,7 +4266,6 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 175, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -4493,7 +4397,6 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 179, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -4557,7 +4460,6 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 177, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -5045,7 +4947,6 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 178, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -5129,7 +5030,6 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 181, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -5221,7 +5121,6 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 180, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -5313,7 +5212,6 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 182, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -5399,8 +5297,7 @@ "light", "dark" ], - "x-enum-name": null, - "x-enum-keys": [], + "x-enum-name": "BrowserTheme", "default": "light", "in": "query" }, @@ -5436,7 +5333,7 @@ "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", "required": false, "type": "string", - "x-example": "america\/new_york", + "x-example": "America\/New_York", "enum": [ "africa\/abidjan", "africa\/accra", @@ -5858,9 +5755,7 @@ "pacific\/wallis", "utc" ], - "x-enum-name": null, - "x-enum-keys": [], - "default": "", + "x-enum-name": "Timezone", "in": "query" }, { @@ -5932,8 +5827,7 @@ "web-share", "xr-spatial-tracking" ], - "x-enum-name": "BrowserPermission", - "x-enum-keys": [] + "x-enum-name": "BrowserPermission" }, "x-example": "[\"geolocation\",\"notifications\"]", "default": [], @@ -5995,8 +5889,6 @@ "gif" ], "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "", "in": "query" } ] @@ -6026,7 +5918,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 774, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -6093,7 +5984,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 770, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -6164,7 +6054,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 771, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -6227,7 +6116,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 772, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -6306,7 +6194,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 773, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -6371,7 +6258,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 775, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -6452,7 +6338,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 918, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -6566,7 +6451,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 715, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -6672,7 +6556,6 @@ "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": { @@ -6691,7 +6574,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -6725,7 +6607,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 716, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -6828,7 +6709,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 719, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -6935,7 +6815,6 @@ "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": { @@ -6945,7 +6824,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -6979,7 +6857,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 717, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -7050,7 +6927,6 @@ "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": { @@ -7060,7 +6936,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -7089,7 +6964,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 721, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -7154,7 +7028,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -7190,7 +7063,6 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 726, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -7269,7 +7141,6 @@ "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", "x-nullable": true @@ -7277,7 +7148,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -7313,7 +7183,6 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 725, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -7392,7 +7261,6 @@ "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", "x-nullable": true @@ -7400,7 +7268,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -7434,7 +7301,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 883, "cookies": false, "type": "", "demo": "documentsdb\/list-transactions.md", @@ -7501,7 +7367,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 879, "cookies": false, "type": "", "demo": "documentsdb\/create-transaction.md", @@ -7572,7 +7437,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 880, "cookies": false, "type": "", "demo": "documentsdb\/get-transaction.md", @@ -7635,7 +7499,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 881, "cookies": false, "type": "", "demo": "documentsdb\/update-transaction.md", @@ -7714,7 +7577,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 882, "cookies": false, "type": "", "demo": "documentsdb\/delete-transaction.md", @@ -7779,7 +7641,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 884, "cookies": false, "type": "", "demo": "documentsdb\/create-operations.md", @@ -7859,7 +7720,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 919, "cookies": false, "type": "", "demo": "documentsdb\/list-documents.md", @@ -7969,7 +7829,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 868, "cookies": false, "type": "", "demo": "documentsdb\/create-document.md", @@ -8093,7 +7952,6 @@ "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" @@ -8111,7 +7969,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -8144,7 +8001,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 869, "cookies": false, "type": "", "demo": "documentsdb\/get-document.md", @@ -8243,7 +8099,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 872, "cookies": false, "type": "", "demo": "documentsdb\/upsert-document.md", @@ -8342,7 +8197,6 @@ "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" @@ -8351,7 +8205,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -8384,7 +8237,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 870, "cookies": false, "type": "", "demo": "documentsdb\/update-document.md", @@ -8451,7 +8303,6 @@ "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" @@ -8460,7 +8311,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -8488,7 +8338,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 874, "cookies": false, "type": "", "demo": "documentsdb\/delete-document.md", @@ -8549,7 +8398,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -8584,7 +8432,6 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 878, "cookies": false, "type": "", "demo": "documentsdb\/decrement-document-attribute.md", @@ -8659,14 +8506,12 @@ "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>" } } @@ -8701,7 +8546,6 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 877, "cookies": false, "type": "", "demo": "documentsdb\/increment-document-attribute.md", @@ -8776,14 +8620,12 @@ "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>" } } @@ -8816,7 +8658,6 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 441, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -8902,7 +8743,6 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 439, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -8978,8 +8818,7 @@ "OPTIONS", "HEAD" ], - "x-enum-name": "ExecutionMethod", - "x-enum-keys": [] + "x-enum-name": "ExecutionMethod" }, "headers": { "type": "object", @@ -8990,7 +8829,6 @@ "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 } @@ -9024,7 +8862,6 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 440, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -9099,7 +8936,6 @@ "x-appwrite": { "method": "query", "group": "graphql", - "weight": 116, "cookies": false, "type": "graphql", "demo": "graphql\/query.md", @@ -9174,7 +9010,6 @@ "x-appwrite": { "method": "mutation", "group": "graphql", - "weight": 115, "cookies": false, "type": "graphql", "demo": "graphql\/mutation.md", @@ -9247,7 +9082,6 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 49, "cookies": false, "type": "", "demo": "locale\/get.md", @@ -9300,7 +9134,6 @@ "x-appwrite": { "method": "listCodes", "group": null, - "weight": 50, "cookies": false, "type": "", "demo": "locale\/list-codes.md", @@ -9353,7 +9186,6 @@ "x-appwrite": { "method": "listContinents", "group": null, - "weight": 54, "cookies": false, "type": "", "demo": "locale\/list-continents.md", @@ -9406,7 +9238,6 @@ "x-appwrite": { "method": "listCountries", "group": null, - "weight": 51, "cookies": false, "type": "", "demo": "locale\/list-countries.md", @@ -9459,7 +9290,6 @@ "x-appwrite": { "method": "listCountriesEU", "group": null, - "weight": 52, "cookies": false, "type": "", "demo": "locale\/list-countries-eu.md", @@ -9512,7 +9342,6 @@ "x-appwrite": { "method": "listCountriesPhones", "group": null, - "weight": 53, "cookies": false, "type": "", "demo": "locale\/list-countries-phones.md", @@ -9565,7 +9394,6 @@ "x-appwrite": { "method": "listCurrencies", "group": null, - "weight": 55, "cookies": false, "type": "", "demo": "locale\/list-currencies.md", @@ -9618,7 +9446,6 @@ "x-appwrite": { "method": "listLanguages", "group": null, - "weight": 56, "cookies": false, "type": "", "demo": "locale\/list-languages.md", @@ -9673,7 +9500,6 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 149, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -9718,13 +9544,11 @@ "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>" } }, @@ -9758,7 +9582,6 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 153, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -9829,7 +9652,6 @@ "x-appwrite": { "method": "list", "group": "presences", - "weight": 419, "cookies": false, "type": "", "demo": "presences\/list.md", @@ -9915,7 +9737,6 @@ "x-appwrite": { "method": "get", "group": "presences", - "weight": 418, "cookies": false, "type": "", "demo": "presences\/get.md", @@ -9978,7 +9799,6 @@ "x-appwrite": { "method": "upsert", "group": "presences", - "weight": 416, "cookies": false, "type": "", "demo": "presences\/upsert.md", @@ -10050,19 +9870,16 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "status": { "type": "string", "description": "Presence status.", - "default": null, "x-example": "<STATUS>" }, "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" @@ -10071,7 +9888,6 @@ "expiresAt": { "type": "string", "description": "Presence expiry datetime.", - "default": null, "x-example": "2020-10-15T06:38:00.000+00:00", "format": "datetime" }, @@ -10114,7 +9930,6 @@ "x-appwrite": { "method": "update", "group": "presences", - "weight": 420, "cookies": false, "type": "", "demo": "presences\/update.md", @@ -10186,19 +10001,16 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "status": { "type": "string", "description": "Presence status.", - "default": null, "x-example": "<STATUS>" }, "expiresAt": { "type": "string", "description": "Presence expiry datetime.", - "default": null, "x-example": "2020-10-15T06:38:00.000+00:00", "format": "datetime" }, @@ -10211,7 +10023,6 @@ "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" @@ -10248,7 +10059,6 @@ "x-appwrite": { "method": "delete", "group": "presences", - "weight": 421, "cookies": false, "type": "", "demo": "presences\/delete.md", @@ -10287,300 +10097,6 @@ ] } }, - "\/reports": { - "get": { - "summary": "List reports", - "operationId": "advisorListReports", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "advisor" - ], - "description": "Get a list of all the project's analyzer reports. You can use the query params to filter your results.\n", - "responses": { - "200": { - "description": "Reports List", - "schema": { - "$ref": "#\/definitions\/reportList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listReports", - "group": "reports", - "weight": 695, - "cookies": false, - "type": "", - "demo": "advisor\/list-reports.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-reports.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). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: appId, type, targetType, target, analyzedAt", - "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" - } - ] - } - }, - "\/reports\/{reportId}": { - "get": { - "summary": "Get report", - "operationId": "advisorGetReport", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "advisor" - ], - "description": "Get an analyzer report by its unique ID. The response includes the report's metadata and the nested insights it produced.\n", - "responses": { - "200": { - "description": "Report", - "schema": { - "$ref": "#\/definitions\/report" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getReport", - "group": "reports", - "weight": 694, - "cookies": false, - "type": "", - "demo": "advisor\/get-report.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-report.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Report ID.", - "required": true, - "type": "string", - "x-example": "<REPORT_ID>", - "in": "path" - } - ] - } - }, - "\/reports\/{reportId}\/insights": { - "get": { - "summary": "List insights", - "operationId": "advisorListInsights", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "advisor" - ], - "description": "List the insights produced under a single analyzer report. You can use the query params to filter your results further.\n", - "responses": { - "200": { - "description": "Insights List", - "schema": { - "$ref": "#\/definitions\/insightList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listInsights", - "group": "insights", - "weight": 698, - "cookies": false, - "type": "", - "demo": "advisor\/list-insights.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-insights.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Parent report ID.", - "required": true, - "type": "string", - "x-example": "<REPORT_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: type, severity, status, resourceType, resourceId, parentResourceType, parentResourceId, analyzedAt, dismissedAt, dismissedBy", - "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" - } - ] - } - }, - "\/reports\/{reportId}\/insights\/{insightId}": { - "get": { - "summary": "Get insight", - "operationId": "advisorGetInsight", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "advisor" - ], - "description": "Get an insight by its unique ID, scoped to its parent report.\n", - "responses": { - "200": { - "description": "Insight", - "schema": { - "$ref": "#\/definitions\/insight" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getInsight", - "group": "insights", - "weight": 697, - "cookies": false, - "type": "", - "demo": "advisor\/get-insight.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-insight.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "reportId", - "description": "Parent report ID.", - "required": true, - "type": "string", - "x-example": "<REPORT_ID>", - "in": "path" - }, - { - "name": "insightId", - "description": "Insight ID.", - "required": true, - "type": "string", - "x-example": "<INSIGHT_ID>", - "in": "path" - } - ] - } - }, "\/storage\/buckets\/{bucketId}\/files": { "get": { "summary": "List files", @@ -10605,7 +10121,6 @@ "x-appwrite": { "method": "listFiles", "group": "files", - "weight": 555, "cookies": false, "type": "", "demo": "storage\/list-files.md", @@ -10698,7 +10213,6 @@ "x-appwrite": { "method": "createFile", "group": "files", - "weight": 1208, "cookies": false, "type": "upload", "demo": "storage\/create-file.md", @@ -10789,7 +10303,6 @@ "x-appwrite": { "method": "getFile", "group": "files", - "weight": 554, "cookies": false, "type": "", "demo": "storage\/get-file.md", @@ -10860,7 +10373,6 @@ "x-appwrite": { "method": "updateFile", "group": "files", - "weight": 556, "cookies": false, "type": "", "demo": "storage\/update-file.md", @@ -10913,13 +10425,11 @@ "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": { @@ -10951,7 +10461,6 @@ "x-appwrite": { "method": "deleteFile", "group": "files", - "weight": 557, "cookies": false, "type": "", "demo": "storage\/delete-file.md", @@ -11022,7 +10531,6 @@ "x-appwrite": { "method": "getFileDownload", "group": "files", - "weight": 559, "cookies": false, "type": "location", "demo": "storage\/get-file-download.md", @@ -11102,7 +10610,6 @@ "x-appwrite": { "method": "getFilePreview", "group": "files", - "weight": 558, "cookies": false, "type": "location", "demo": "storage\/get-file-preview.md", @@ -11184,7 +10691,6 @@ "bottom-right" ], "x-enum-name": "ImageGravity", - "x-enum-keys": [], "default": "center", "in": "query" }, @@ -11270,8 +10776,6 @@ "gif" ], "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "", "in": "query" }, { @@ -11310,7 +10814,6 @@ "x-appwrite": { "method": "getFileView", "group": "files", - "weight": 560, "cookies": false, "type": "location", "demo": "storage\/get-file-view.md", @@ -11390,7 +10893,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 849, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -11460,7 +10962,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 845, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -11534,7 +11035,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 846, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -11600,7 +11100,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 847, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -11682,7 +11181,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 848, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -11750,7 +11248,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 850, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -11834,7 +11331,6 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 920, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -11947,7 +11443,6 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 833, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -12048,7 +11543,6 @@ "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": { @@ -12067,7 +11561,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -12101,7 +11594,6 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 834, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -12203,7 +11695,6 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 837, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -12305,7 +11796,6 @@ "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": { @@ -12315,7 +11805,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -12349,7 +11838,6 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 835, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -12419,7 +11907,6 @@ "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": { @@ -12429,7 +11916,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -12458,7 +11944,6 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 839, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -12522,7 +12007,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -12558,7 +12042,6 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 844, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -12636,7 +12119,6 @@ "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 @@ -12644,7 +12126,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -12680,7 +12161,6 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 843, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -12758,7 +12238,6 @@ "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 @@ -12766,7 +12245,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -12800,7 +12278,6 @@ "x-appwrite": { "method": "list", "group": "teams", - "weight": 531, "cookies": false, "type": "", "demo": "teams\/list.md", @@ -12885,7 +12362,6 @@ "x-appwrite": { "method": "create", "group": "teams", - "weight": 529, "cookies": false, "type": "", "demo": "teams\/create.md", @@ -12922,13 +12398,11 @@ "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": { @@ -12976,7 +12450,6 @@ "x-appwrite": { "method": "get", "group": "teams", - "weight": 530, "cookies": false, "type": "", "demo": "teams\/get.md", @@ -13039,7 +12512,6 @@ "x-appwrite": { "method": "updateName", "group": "teams", - "weight": 533, "cookies": false, "type": "", "demo": "teams\/update-name.md", @@ -13084,7 +12556,6 @@ "name": { "type": "string", "description": "New team name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" } }, @@ -13115,7 +12586,6 @@ "x-appwrite": { "method": "delete", "group": "teams", - "weight": 532, "cookies": false, "type": "", "demo": "teams\/delete.md", @@ -13178,7 +12648,6 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 538, "cookies": false, "type": "", "demo": "teams\/list-memberships.md", @@ -13271,7 +12740,6 @@ "x-appwrite": { "method": "createMembership", "group": "memberships", - "weight": 536, "cookies": false, "type": "", "demo": "teams\/create-membership.md", @@ -13336,7 +12804,6 @@ "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": null, "items": { "type": "string" @@ -13388,7 +12855,6 @@ "x-appwrite": { "method": "getMembership", "group": "memberships", - "weight": 537, "cookies": false, "type": "", "demo": "teams\/get-membership.md", @@ -13459,7 +12925,6 @@ "x-appwrite": { "method": "updateMembership", "group": "memberships", - "weight": 539, "cookies": false, "type": "", "demo": "teams\/update-membership.md", @@ -13512,7 +12977,6 @@ "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" @@ -13546,7 +13010,6 @@ "x-appwrite": { "method": "deleteMembership", "group": "memberships", - "weight": 1209, "cookies": false, "type": "", "demo": "teams\/delete-membership.md", @@ -13619,7 +13082,6 @@ "x-appwrite": { "method": "updateMembershipStatus", "group": "memberships", - "weight": 541, "cookies": false, "type": "", "demo": "teams\/update-membership-status.md", @@ -13672,13 +13134,11 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "secret": { "type": "string", "description": "Secret key.", - "default": null, "x-example": "<SECRET>" } }, @@ -13715,7 +13175,6 @@ "x-appwrite": { "method": "getPrefs", "group": "teams", - "weight": 534, "cookies": false, "type": "", "demo": "teams\/get-prefs.md", @@ -13778,7 +13237,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "teams", - "weight": 535, "cookies": false, "type": "", "demo": "teams\/update-prefs.md", @@ -13859,7 +13317,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 916, "cookies": false, "type": "", "demo": "vectorsdb\/list-transactions.md", @@ -13926,7 +13383,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 912, "cookies": false, "type": "", "demo": "vectorsdb\/create-transaction.md", @@ -13997,7 +13453,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 913, "cookies": false, "type": "", "demo": "vectorsdb\/get-transaction.md", @@ -14060,7 +13515,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 914, "cookies": false, "type": "", "demo": "vectorsdb\/update-transaction.md", @@ -14139,7 +13593,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 915, "cookies": false, "type": "", "demo": "vectorsdb\/delete-transaction.md", @@ -14204,7 +13657,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 917, "cookies": false, "type": "", "demo": "vectorsdb\/create-operations.md", @@ -14285,7 +13737,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 906, "cookies": false, "type": "", "demo": "vectorsdb\/list-documents.md", @@ -14395,7 +13846,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 902, "cookies": false, "type": "", "demo": "vectorsdb\/create-document.md", @@ -14492,7 +13942,6 @@ "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" @@ -14510,7 +13959,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -14543,7 +13991,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 905, "cookies": false, "type": "", "demo": "vectorsdb\/get-document.md", @@ -14642,7 +14089,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 904, "cookies": false, "type": "", "demo": "vectorsdb\/upsert-document.md", @@ -14741,7 +14187,6 @@ "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" @@ -14750,7 +14195,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -14783,7 +14227,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 903, "cookies": false, "type": "", "demo": "vectorsdb\/update-document.md", @@ -14850,7 +14293,6 @@ "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" @@ -14859,7 +14301,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -14887,7 +14328,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 907, "cookies": false, "type": "", "demo": "vectorsdb\/delete-document.md", @@ -14948,7 +14388,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -15532,64 +14971,6 @@ "transactions": "" } }, - "insightList": { - "description": "Insights List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of insights that matched your query.", - "x-example": 5, - "format": "int32" - }, - "insights": { - "type": "array", - "description": "List of insights.", - "items": { - "type": "object", - "$ref": "#\/definitions\/insight" - }, - "x-example": "" - } - }, - "required": [ - "total", - "insights" - ], - "example": { - "total": 5, - "insights": "" - } - }, - "reportList": { - "description": "Reports List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of reports that matched your query.", - "x-example": 5, - "format": "int32" - }, - "reports": { - "type": "array", - "description": "List of reports.", - "items": { - "type": "object", - "$ref": "#\/definitions\/report" - }, - "x-example": "" - } - }, - "required": [ - "total", - "reports" - ], - "example": { - "total": 5, - "reports": "" - } - }, "row": { "description": "Row", "type": "object", @@ -16902,6 +16283,12 @@ "x-example": 17890, "format": "int32" }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "x-example": 12345, + "format": "int32" + }, "chunksTotal": { "type": "integer", "description": "Total number of chunks available", @@ -16935,6 +16322,7 @@ "signature", "mimeType", "sizeOriginal", + "sizeActual", "chunksTotal", "chunksUploaded", "encryption", @@ -16952,6 +16340,7 @@ "signature": "5d529fd02b544198ae075bd57c1762bb", "mimeType": "image\/png", "sizeOriginal": 17890, + "sizeActual": 12345, "chunksTotal": 17890, "chunksUploaded": 17890, "encryption": true, @@ -17858,301 +17247,6 @@ "identifier": "token", "expired": false } - }, - "insight": { - "description": "Insight", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Insight ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Insight creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Insight update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "reportId": { - "type": "string", - "description": "Parent report ID. Insights always belong to a report.", - "x-example": "5e5ea5c16897e" - }, - "type": { - "type": "string", - "description": "Insight type. One of databaseIndex (legacy), tablesDBIndex, documentsDBIndex, vectorsDBIndex, databasePerformance, sitePerformance, siteAccessibility, siteSeo, functionPerformance. The index types are engine-specific so each CTA can pair the right service+method (databases.createIndex, tablesDB.createIndex, documentsDB.createIndex, or vectorsDB.createIndex).", - "x-example": "tablesDBIndex" - }, - "severity": { - "type": "string", - "description": "Insight severity. One of info, warning, critical.", - "x-example": "warning" - }, - "status": { - "type": "string", - "description": "Insight status. One of active, dismissed.", - "x-example": "active" - }, - "resourceType": { - "type": "string", - "description": "Type of the resource the insight is about. Plural noun, e.g. databases, sites, functions.", - "x-example": "databases" - }, - "resourceId": { - "type": "string", - "description": "ID of the resource the insight is about.", - "x-example": "main" - }, - "parentResourceType": { - "type": "string", - "description": "Plural noun for the parent resource that contains the insight's resource, e.g. an insight about a column index on a table \u2192 resourceType=indexes, parentResourceType=tables. Empty when the resource has no parent.", - "x-example": "tables" - }, - "parentResourceId": { - "type": "string", - "description": "ID of the parent resource. Empty when the resource has no parent.", - "x-example": "orders" - }, - "title": { - "type": "string", - "description": "Insight title.", - "x-example": "Missing index on collection orders" - }, - "summary": { - "type": "string", - "description": "Short markdown summary describing the insight.", - "x-example": "Queries against `orders.status` are scanning the full collection." - }, - "ctas": { - "type": "array", - "description": "List of call-to-action buttons attached to this insight.", - "items": { - "type": "object", - "$ref": "#\/definitions\/insightCTA" - }, - "x-example": [] - }, - "analyzedAt": { - "type": "string", - "description": "Time the insight was analyzed in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "x-nullable": true - }, - "dismissedAt": { - "type": "string", - "description": "Time the insight was dismissed in ISO 8601 format. Empty when not dismissed.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "x-nullable": true - }, - "dismissedBy": { - "type": "string", - "description": "User ID that dismissed the insight. Empty when not dismissed.", - "x-example": "5e5ea5c16897e", - "x-nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "reportId", - "type", - "severity", - "status", - "resourceType", - "resourceId", - "parentResourceType", - "parentResourceId", - "title", - "summary", - "ctas" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "reportId": "5e5ea5c16897e", - "type": "tablesDBIndex", - "severity": "warning", - "status": "active", - "resourceType": "databases", - "resourceId": "main", - "parentResourceType": "tables", - "parentResourceId": "orders", - "title": "Missing index on collection orders", - "summary": "Queries against `orders.status` are scanning the full collection.", - "ctas": [], - "analyzedAt": "2020-10-15T06:38:00.000+00:00", - "dismissedAt": "2020-10-15T06:38:00.000+00:00", - "dismissedBy": "5e5ea5c16897e" - } - }, - "insightCTA": { - "description": "InsightCTA", - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Human-readable label for the CTA, used in UI.", - "x-example": "Create missing index" - }, - "service": { - "type": "string", - "description": "Public API service (SDK namespace) the client should invoke. Must match the engine that owns the resource \u2014 for index suggestions: databases (legacy), tablesDB, documentsDB, or vectorsDB.", - "x-example": "tablesDB" - }, - "method": { - "type": "string", - "description": "Public API method on the chosen service the client should invoke when this CTA is triggered.", - "x-example": "createIndex" - }, - "params": { - "type": "object", - "additionalProperties": true, - "description": "Parameter map the client should pass to the service method when this CTA is triggered. Keys match the target API's parameter names (e.g. databaseId\/tableId\/columns for tablesDB, databaseId\/collectionId\/attributes for the legacy Databases API).", - "x-example": { - "databaseId": "main", - "tableId": "orders", - "key": "_idx_status", - "type": "key", - "columns": [ - "status" - ] - } - } - }, - "required": [ - "label", - "service", - "method", - "params" - ], - "example": { - "label": "Create missing index", - "service": "tablesDB", - "method": "createIndex", - "params": { - "databaseId": "main", - "tableId": "orders", - "key": "_idx_status", - "type": "key", - "columns": [ - "status" - ] - } - } - }, - "report": { - "description": "Report", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Report ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Report creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Report update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "appId": { - "type": "string", - "description": "ID of the third-party app that submitted the report.", - "x-example": "5e5ea5c16897e" - }, - "type": { - "type": "string", - "description": "Analyzer that produced this report. e.g. lighthouse, audit, databaseAnalyzer.", - "x-example": "lighthouse" - }, - "title": { - "type": "string", - "description": "Short, human-readable title for the report.", - "x-example": "Lighthouse audit for https:\/\/appwrite.io\/" - }, - "summary": { - "type": "string", - "description": "Markdown summary describing the report.", - "x-example": "Performance score 78. 4 opportunities found." - }, - "targetType": { - "type": "string", - "description": "Plural noun describing what the report analyzes, e.g. databases, sites, urls.", - "x-example": "urls" - }, - "target": { - "type": "string", - "description": "Free-form target identifier (URL for lighthouse, resource ID for db).", - "x-example": "https:\/\/appwrite.io\/" - }, - "categories": { - "type": "array", - "description": "Categories covered by the report, e.g. performance, accessibility.", - "items": { - "type": "string" - }, - "x-example": [ - "performance", - "accessibility" - ] - }, - "insights": { - "type": "array", - "description": "Insights nested under this report.", - "items": { - "type": "object", - "$ref": "#\/definitions\/insight" - }, - "x-example": [] - }, - "analyzedAt": { - "type": "string", - "description": "Time the report was analyzed in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "x-nullable": true - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "appId", - "type", - "title", - "summary", - "targetType", - "target", - "categories", - "insights" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "appId": "5e5ea5c16897e", - "type": "lighthouse", - "title": "Lighthouse audit for https:\/\/appwrite.io\/", - "summary": "Performance score 78. 4 opportunities found.", - "targetType": "urls", - "target": "https:\/\/appwrite.io\/", - "categories": [ - "performance", - "accessibility" - ], - "insights": [], - "analyzedAt": "2020-10-15T06:38:00.000+00:00" - } } }, "externalDocs": { diff --git a/specs/latest/swagger2-latest-console.json b/specs/latest/swagger2-latest-console.json index f3f33d94b..fe211d44f 100644 --- a/specs/latest/swagger2-latest-console.json +++ b/specs/latest/swagger2-latest-console.json @@ -142,7 +142,6 @@ "x-appwrite": { "method": "get", "group": "account", - "weight": 9, "cookies": false, "type": "", "demo": "account\/get.md", @@ -195,7 +194,6 @@ "x-appwrite": { "method": "create", "group": "account", - "weight": 8, "cookies": false, "type": "", "demo": "account\/create.md", @@ -232,20 +230,17 @@ "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": "New user password. Must be between 8 and 256 chars.", - "default": null, "x-example": null }, "name": { @@ -284,7 +279,6 @@ "x-appwrite": { "method": "delete", "group": "account", - "weight": 10, "cookies": false, "type": "", "demo": "account\/delete.md", @@ -333,7 +327,6 @@ "x-appwrite": { "method": "listBillingAddresses", "group": null, - "weight": 1096, "cookies": false, "type": "", "demo": "account\/list-billing-addresses.md", @@ -386,7 +379,7 @@ "description": "Add a new billing address to a user's account.", "responses": { "201": { - "description": "BillingAddress", + "description": "Address", "schema": { "$ref": "#\/definitions\/billingAddress" } @@ -396,7 +389,6 @@ "x-appwrite": { "method": "createBillingAddress", "group": null, - "weight": 1094, "cookies": false, "type": "", "demo": "account\/create-billing-address.md", @@ -429,19 +421,16 @@ "country": { "type": "string", "description": "Country", - "default": null, "x-example": "<COUNTRY>" }, "city": { "type": "string", "description": "City", - "default": null, "x-example": "<CITY>" }, "streetAddress": { "type": "string", "description": "Street address", - "default": null, "x-example": "<STREET_ADDRESS>" }, "addressLine2": { @@ -487,7 +476,7 @@ "description": "Get a specific billing address for a user using it's ID.", "responses": { "200": { - "description": "BillingAddress", + "description": "Address", "schema": { "$ref": "#\/definitions\/billingAddress" } @@ -497,7 +486,6 @@ "x-appwrite": { "method": "getBillingAddress", "group": null, - "weight": 1095, "cookies": false, "type": "", "demo": "account\/get-billing-address.md", @@ -546,7 +534,7 @@ "description": "Update a specific billing address using it's ID.", "responses": { "200": { - "description": "BillingAddress", + "description": "Address", "schema": { "$ref": "#\/definitions\/billingAddress" } @@ -556,7 +544,6 @@ "x-appwrite": { "method": "updateBillingAddress", "group": null, - "weight": 1097, "cookies": false, "type": "", "demo": "account\/update-billing-address.md", @@ -597,19 +584,16 @@ "country": { "type": "string", "description": "Country", - "default": null, "x-example": "<COUNTRY>" }, "city": { "type": "string", "description": "City", - "default": null, "x-example": "<CITY>" }, "streetAddress": { "type": "string", "description": "Street address", - "default": null, "x-example": "<STREET_ADDRESS>" }, "addressLine2": { @@ -662,7 +646,6 @@ "x-appwrite": { "method": "deleteBillingAddress", "group": null, - "weight": 1098, "cookies": false, "type": "", "demo": "account\/delete-billing-address.md", @@ -721,7 +704,6 @@ "x-appwrite": { "method": "getCoupon", "group": null, - "weight": 1100, "cookies": false, "type": "", "demo": "account\/get-coupon.md", @@ -782,7 +764,6 @@ "x-appwrite": { "method": "updateEmail", "group": "account", - "weight": 34, "cookies": false, "type": "", "demo": "account\/update-email.md", @@ -819,14 +800,12 @@ "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, "password": { "type": "string", "description": "User password. Must be at least 8 chars.", - "default": null, "x-example": "password", "format": "password" } @@ -864,7 +843,6 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 47, "cookies": false, "type": "", "demo": "account\/list-identities.md", @@ -937,7 +915,6 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 48, "cookies": false, "type": "", "demo": "account\/delete-identity.md", @@ -1000,7 +977,6 @@ "x-appwrite": { "method": "listInvoices", "group": null, - "weight": 1099, "cookies": false, "type": "", "demo": "account\/list-invoices.md", @@ -1065,7 +1041,6 @@ "x-appwrite": { "method": "createJWT", "group": "tokens", - "weight": 29, "cookies": false, "type": "", "demo": "account\/create-jwt.md", @@ -1136,7 +1111,6 @@ "x-appwrite": { "method": "listKeys", "group": "keys", - "weight": 1082, "cookies": false, "type": "", "demo": "account\/list-keys.md", @@ -1195,7 +1169,6 @@ "x-appwrite": { "method": "createKey", "group": "keys", - "weight": 1083, "cookies": false, "type": "", "demo": "account\/create-key.md", @@ -1227,13 +1200,11 @@ "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", @@ -1242,14 +1213,12 @@ "teams.read", "teams.write" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "AccountKeyScopes" } }, "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -1288,7 +1257,6 @@ "x-appwrite": { "method": "getKey", "group": "keys", - "weight": 1086, "cookies": false, "type": "", "demo": "account\/get-key.md", @@ -1346,7 +1314,6 @@ "x-appwrite": { "method": "updateKey", "group": "keys", - "weight": 1085, "cookies": false, "type": "", "demo": "account\/update-key.md", @@ -1386,13 +1353,11 @@ "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", @@ -1401,14 +1366,12 @@ "teams.read", "teams.write" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "AccountKeyScopes" } }, "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -1444,7 +1407,6 @@ "x-appwrite": { "method": "deleteKey", "group": "keys", - "weight": 1084, "cookies": false, "type": "", "demo": "account\/delete-key.md", @@ -1502,7 +1464,6 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 31, "cookies": false, "type": "", "demo": "account\/list-logs.md", @@ -1580,7 +1541,6 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 165, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -1617,7 +1577,6 @@ "mfa": { "type": "boolean", "description": "Enable or disable MFA.", - "default": null, "x-example": false } }, @@ -1655,7 +1614,6 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 167, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -1749,7 +1707,6 @@ "totp" ], "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], "in": "path" } ] @@ -1779,7 +1736,6 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 168, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -1877,7 +1833,6 @@ "totp" ], "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], "in": "path" }, { @@ -1889,7 +1844,6 @@ "otp": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<OTP>" } }, @@ -1920,7 +1874,6 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 169, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -2012,7 +1965,6 @@ "totp" ], "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], "in": "path" } ] @@ -2044,7 +1996,6 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 173, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -2137,7 +2088,6 @@ "factor": { "type": "string", "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`.", - "default": null, "x-example": "email", "enum": [ "email", @@ -2145,8 +2095,7 @@ "totp", "recoverycode" ], - "x-enum-name": "AuthenticationFactor", - "x-enum-keys": [] + "x-enum-name": "AuthenticationFactor" } }, "required": [ @@ -2181,7 +2130,6 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 174, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -2278,13 +2226,11 @@ "challengeId": { "type": "string", "description": "ID of the challenge.", - "default": null, "x-example": "<CHALLENGE_ID>" }, "otp": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<OTP>" } }, @@ -2321,7 +2267,6 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 166, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -2422,7 +2367,6 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 172, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -2523,7 +2467,6 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 170, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -2624,7 +2567,6 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 171, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -2727,7 +2669,6 @@ "x-appwrite": { "method": "updateName", "group": "account", - "weight": 32, "cookies": false, "type": "", "demo": "account\/update-name.md", @@ -2764,7 +2705,6 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" } }, @@ -2802,7 +2742,6 @@ "x-appwrite": { "method": "updatePassword", "group": "account", - "weight": 33, "cookies": false, "type": "", "demo": "account\/update-password.md", @@ -2839,7 +2778,6 @@ "password": { "type": "string", "description": "New user password. Must be at least 8 chars.", - "default": null, "x-example": null }, "oldPassword": { @@ -2882,7 +2820,6 @@ "x-appwrite": { "method": "listPaymentMethods", "group": null, - "weight": 1089, "cookies": false, "type": "", "demo": "account\/list-payment-methods.md", @@ -2945,7 +2882,6 @@ "x-appwrite": { "method": "createPaymentMethod", "group": null, - "weight": 1087, "cookies": false, "type": "", "demo": "account\/create-payment-method.md", @@ -2994,7 +2930,6 @@ "x-appwrite": { "method": "getPaymentMethod", "group": null, - "weight": 1088, "cookies": false, "type": "", "demo": "account\/get-payment-method.md", @@ -3053,7 +2988,6 @@ "x-appwrite": { "method": "updatePaymentMethod", "group": null, - "weight": 1090, "cookies": false, "type": "", "demo": "account\/update-payment-method.md", @@ -3094,21 +3028,18 @@ "expiryMonth": { "type": "integer", "description": "Payment expiry month", - "default": null, "x-example": 1, "format": "int32" }, "expiryYear": { "type": "integer", "description": "Expiry year", - "default": null, "x-example": 2026, "format": "int32" }, "state": { "type": "string", "description": "State of the payment method country", - "default": null, "x-example": "<STATE>" } }, @@ -3142,7 +3073,6 @@ "x-appwrite": { "method": "deletePaymentMethod", "group": null, - "weight": 1093, "cookies": false, "type": "", "demo": "account\/delete-payment-method.md", @@ -3203,7 +3133,6 @@ "x-appwrite": { "method": "updatePaymentMethodProvider", "group": null, - "weight": 1091, "cookies": false, "type": "", "demo": "account\/update-payment-method-provider.md", @@ -3244,19 +3173,16 @@ "providerMethodId": { "type": "string", "description": "Payment method ID from the payment provider", - "default": null, "x-example": "<PROVIDER_METHOD_ID>" }, "name": { "type": "string", "description": "Name in the payment method", - "default": null, "x-example": "<NAME>" }, "state": { "type": "string", "description": "State of the payment method country", - "default": null, "x-example": "<STATE>", "x-nullable": true } @@ -3296,7 +3222,6 @@ "x-appwrite": { "method": "updatePaymentMethodMandateOptions", "group": null, - "weight": 1092, "cookies": false, "type": "", "demo": "account\/update-payment-method-mandate-options.md", @@ -3357,7 +3282,6 @@ "x-appwrite": { "method": "updatePhone", "group": "account", - "weight": 35, "cookies": false, "type": "", "demo": "account\/update-phone.md", @@ -3394,14 +3318,12 @@ "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" }, "password": { "type": "string", "description": "User password. Must be at least 8 chars.", - "default": null, "x-example": "password", "format": "password" } @@ -3439,7 +3361,6 @@ "x-appwrite": { "method": "getPrefs", "group": "account", - "weight": 30, "cookies": false, "type": "", "demo": "account\/get-prefs.md", @@ -3492,7 +3413,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "account", - "weight": 36, "cookies": false, "type": "", "demo": "account\/update-prefs.md", @@ -3567,7 +3487,6 @@ "x-appwrite": { "method": "createRecovery", "group": "recovery", - "weight": 38, "cookies": false, "type": "", "demo": "account\/create-recovery.md", @@ -3607,14 +3526,12 @@ "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, "url": { "type": "string", "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "default": null, "x-example": "https:\/\/example.com", "format": "url" } @@ -3652,7 +3569,6 @@ "x-appwrite": { "method": "updateRecovery", "group": "recovery", - "weight": 39, "cookies": false, "type": "", "demo": "account\/update-recovery.md", @@ -3689,19 +3605,16 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "secret": { "type": "string", "description": "Valid reset token.", - "default": null, "x-example": "<SECRET>" }, "password": { "type": "string", "description": "New user password. Must be between 8 and 256 chars.", - "default": null, "x-example": null } }, @@ -3739,7 +3652,6 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 11, "cookies": false, "type": "", "demo": "account\/list-sessions.md", @@ -3787,7 +3699,6 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 12, "cookies": false, "type": "", "demo": "account\/delete-sessions.md", @@ -3842,7 +3753,6 @@ "x-appwrite": { "method": "createAnonymousSession", "group": "sessions", - "weight": 17, "cookies": false, "type": "", "demo": "account\/create-anonymous-session.md", @@ -3897,7 +3807,6 @@ "x-appwrite": { "method": "createEmailPasswordSession", "group": "sessions", - "weight": 16, "cookies": false, "type": "", "demo": "account\/create-email-password-session.md", @@ -3934,14 +3843,12 @@ "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, "password": { "type": "string", "description": "User password. Must be at least 8 chars.", - "default": null, "x-example": "password", "format": "password" } @@ -3981,7 +3888,6 @@ "x-appwrite": { "method": "updateMagicURLSession", "group": "sessions", - "weight": 26, "cookies": false, "type": "", "demo": "account\/update-magic-url-session.md", @@ -4022,13 +3928,11 @@ "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>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -4062,7 +3966,6 @@ "x-appwrite": { "method": "createOAuth2Session", "group": "sessions", - "weight": 19, "cookies": false, "type": "webAuth", "demo": "account\/create-o-auth-2-session.md", @@ -4142,7 +4045,6 @@ "zoom" ], "x-enum-name": "OAuthProvider", - "x-enum-keys": [], "in": "path" }, { @@ -4206,7 +4108,6 @@ "x-appwrite": { "method": "updatePhoneSession", "group": "sessions", - "weight": 27, "cookies": false, "type": "", "demo": "account\/update-phone-session.md", @@ -4247,13 +4148,11 @@ "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>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -4292,7 +4191,6 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 18, "cookies": false, "type": "", "demo": "account\/create-session.md", @@ -4329,13 +4227,11 @@ "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>" }, "secret": { "type": "string", "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", - "default": null, "x-example": "<SECRET>" } }, @@ -4372,7 +4268,6 @@ "x-appwrite": { "method": "getSession", "group": "sessions", - "weight": 13, "cookies": false, "type": "", "demo": "account\/get-session.md", @@ -4435,7 +4330,6 @@ "x-appwrite": { "method": "updateSession", "group": "sessions", - "weight": 15, "cookies": false, "type": "", "demo": "account\/update-session.md", @@ -4493,7 +4387,6 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 14, "cookies": false, "type": "", "demo": "account\/delete-session.md", @@ -4558,7 +4451,6 @@ "x-appwrite": { "method": "updateStatus", "group": "account", - "weight": 37, "cookies": false, "type": "", "demo": "account\/update-status.md", @@ -4613,7 +4505,6 @@ "x-appwrite": { "method": "createPushTarget", "group": "pushTargets", - "weight": 44, "cookies": false, "type": "", "demo": "account\/create-push-target.md", @@ -4648,13 +4539,11 @@ "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>" }, "identifier": { "type": "string", "description": "The target identifier (token, email, phone etc.)", - "default": null, "x-example": "<IDENTIFIER>" }, "providerId": { @@ -4699,7 +4588,6 @@ "x-appwrite": { "method": "updatePushTarget", "group": "pushTargets", - "weight": 45, "cookies": false, "type": "", "demo": "account\/update-push-target.md", @@ -4742,7 +4630,6 @@ "identifier": { "type": "string", "description": "The target identifier (token, email, phone etc.)", - "default": null, "x-example": "<IDENTIFIER>" } }, @@ -4773,7 +4660,6 @@ "x-appwrite": { "method": "deletePushTarget", "group": "pushTargets", - "weight": 46, "cookies": false, "type": "", "demo": "account\/delete-push-target.md", @@ -4836,7 +4722,6 @@ "x-appwrite": { "method": "createEmailToken", "group": "tokens", - "weight": 25, "cookies": false, "type": "", "demo": "account\/create-email-token.md", @@ -4876,13 +4761,11 @@ "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. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "default": null, "x-example": "<USER_ID>" }, "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, @@ -4928,7 +4811,6 @@ "x-appwrite": { "method": "createMagicURLToken", "group": "tokens", - "weight": 24, "cookies": false, "type": "", "demo": "account\/create-magic-url-token.md", @@ -4968,13 +4850,11 @@ "userId": { "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. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "default": null, "x-example": "<USER_ID>" }, "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, @@ -5022,7 +4902,6 @@ "x-appwrite": { "method": "createOAuth2Token", "group": "tokens", - "weight": 23, "cookies": false, "type": "webAuth", "demo": "account\/create-o-auth-2-token.md", @@ -5102,7 +4981,6 @@ "zoom" ], "x-enum-name": "OAuthProvider", - "x-enum-keys": [], "in": "path" }, { @@ -5166,7 +5044,6 @@ "x-appwrite": { "method": "createPhoneToken", "group": "tokens", - "weight": 28, "cookies": false, "type": "", "demo": "account\/create-phone-token.md", @@ -5206,13 +5083,11 @@ "userId": { "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. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", - "default": null, "x-example": "<USER_ID>" }, "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" } @@ -5252,7 +5127,6 @@ "x-appwrite": { "method": "createEmailVerification", "group": "verification", - "weight": 40, "cookies": false, "type": "", "demo": "account\/create-email-verification.md", @@ -5341,7 +5215,6 @@ "url": { "type": "string", "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "default": null, "x-example": "https:\/\/example.com", "format": "url" } @@ -5378,7 +5251,6 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "verification", - "weight": 41, "cookies": false, "type": "", "demo": "account\/update-email-verification.md", @@ -5471,13 +5343,11 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -5516,7 +5386,6 @@ "x-appwrite": { "method": "createPhoneVerification", "group": "verification", - "weight": 42, "cookies": false, "type": "", "demo": "account\/create-phone-verification.md", @@ -5572,7 +5441,6 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "verification", - "weight": 43, "cookies": false, "type": "", "demo": "account\/update-phone-verification.md", @@ -5609,13 +5477,11 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -5652,7 +5518,6 @@ "x-appwrite": { "method": "listEvents", "group": null, - "weight": 1206, "cookies": false, "type": "", "demo": "activities\/list-events.md", @@ -5713,7 +5578,6 @@ "x-appwrite": { "method": "getEvent", "group": "events", - "weight": 1207, "cookies": false, "type": "", "demo": "activities\/get-event.md", @@ -5774,7 +5638,6 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 176, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -5901,7 +5764,6 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 175, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -6034,7 +5896,6 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 179, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -6099,7 +5960,6 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 177, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -6588,7 +6448,6 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 178, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -6673,7 +6532,6 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 181, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -6766,7 +6624,6 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 180, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -6859,7 +6716,6 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 182, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -6946,8 +6802,7 @@ "light", "dark" ], - "x-enum-name": null, - "x-enum-keys": [], + "x-enum-name": "BrowserTheme", "default": "light", "in": "query" }, @@ -6983,7 +6838,7 @@ "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", "required": false, "type": "string", - "x-example": "america\/new_york", + "x-example": "America\/New_York", "enum": [ "africa\/abidjan", "africa\/accra", @@ -7405,9 +7260,7 @@ "pacific\/wallis", "utc" ], - "x-enum-name": null, - "x-enum-keys": [], - "default": "", + "x-enum-name": "Timezone", "in": "query" }, { @@ -7479,8 +7332,7 @@ "web-share", "xr-spatial-tracking" ], - "x-enum-name": "BrowserPermission", - "x-enum-keys": [] + "x-enum-name": "BrowserPermission" }, "x-example": "[\"geolocation\",\"notifications\"]", "default": [], @@ -7542,8 +7394,6 @@ "gif" ], "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "", "in": "query" } ] @@ -7573,7 +7423,6 @@ "x-appwrite": { "method": "listArchives", "group": null, - "weight": 1075, "cookies": false, "type": "", "demo": "backups\/list-archives.md", @@ -7638,7 +7487,6 @@ "x-appwrite": { "method": "createArchive", "group": null, - "weight": 1076, "cookies": false, "type": "", "demo": "backups\/create-archive.md", @@ -7673,7 +7521,6 @@ "services": { "type": "array", "description": "Array of services to backup", - "default": null, "x-example": null, "items": { "type": "string", @@ -7685,14 +7532,12 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "resourceId": { "type": "string", "description": "Resource ID. When set, only this single resource will be backed up.", - "default": null, "x-example": "<RESOURCE_ID>", "x-nullable": true } @@ -7729,7 +7574,6 @@ "x-appwrite": { "method": "getArchive", "group": null, - "weight": 1074, "cookies": false, "type": "", "demo": "backups\/get-archive.md", @@ -7787,7 +7631,6 @@ "x-appwrite": { "method": "deleteArchive", "group": null, - "weight": 1077, "cookies": false, "type": "", "demo": "backups\/delete-archive.md", @@ -7848,7 +7691,6 @@ "x-appwrite": { "method": "listPolicies", "group": null, - "weight": 1070, "cookies": false, "type": "", "demo": "backups\/list-policies.md", @@ -7916,7 +7758,6 @@ "x-appwrite": { "method": "createPolicy", "group": null, - "weight": 1071, "cookies": false, "type": "", "demo": "backups\/create-policy.md", @@ -7954,7 +7795,6 @@ "policyId": { "type": "string", "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, "x-example": "<POLICY_ID>" }, "name": { @@ -7966,7 +7806,6 @@ "services": { "type": "array", "description": "Array of services to backup", - "default": null, "x-example": null, "items": { "type": "string", @@ -7978,14 +7817,12 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "resourceId": { "type": "string", "description": "Resource ID. When set, only this single resource will be backed up.", - "default": null, "x-example": "<RESOURCE_ID>", "x-nullable": true }, @@ -7998,14 +7835,12 @@ "retention": { "type": "integer", "description": "Days to keep backups before deletion", - "default": null, "x-example": 1, "format": "int32" }, "schedule": { "type": "string", "description": "Schedule CRON syntax.", - "default": null, "x-example": null } }, @@ -8044,7 +7879,6 @@ "x-appwrite": { "method": "getPolicy", "group": null, - "weight": 1069, "cookies": false, "type": "", "demo": "backups\/get-policy.md", @@ -8108,7 +7942,6 @@ "x-appwrite": { "method": "updatePolicy", "group": null, - "weight": 1072, "cookies": false, "type": "", "demo": "backups\/update-policy.md", @@ -8154,14 +7987,12 @@ "name": { "type": "string", "description": "Policy name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>", "x-nullable": true }, "retention": { "type": "integer", "description": "Days to keep backups before deletion", - "default": null, "x-example": 1, "format": "int32", "x-nullable": true @@ -8169,13 +8000,11 @@ "schedule": { "type": "string", "description": "Cron expression", - "default": null, "x-example": null }, "enabled": { "type": "boolean", "description": "Is Backup enabled? When set to 'disabled', No backup will be taken", - "default": null, "x-example": false, "x-nullable": true } @@ -8206,7 +8035,6 @@ "x-appwrite": { "method": "deletePolicy", "group": null, - "weight": 1073, "cookies": false, "type": "", "demo": "backups\/delete-policy.md", @@ -8272,7 +8100,6 @@ "x-appwrite": { "method": "createRestoration", "group": null, - "weight": 1080, "cookies": false, "type": "", "demo": "backups\/create-restoration.md", @@ -8307,13 +8134,11 @@ "archiveId": { "type": "string", "description": "Backup archive ID to restore", - "default": null, "x-example": "<ARCHIVE_ID>" }, "services": { "type": "array", "description": "Array of services to restore", - "default": null, "x-example": null, "items": { "type": "string", @@ -8325,8 +8150,7 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "newResourceId": { @@ -8375,7 +8199,6 @@ "x-appwrite": { "method": "listRestorations", "group": null, - "weight": 1079, "cookies": false, "type": "", "demo": "backups\/list-restorations.md", @@ -8440,7 +8263,6 @@ "x-appwrite": { "method": "getRestoration", "group": null, - "weight": 1078, "cookies": false, "type": "", "demo": "backups\/get-restoration.md", @@ -8477,46 +8299,42 @@ ] } }, - "\/console\/assistant": { - "post": { - "summary": "Create assistant query", - "operationId": "assistantChat", - "consumes": [ - "application\/json" - ], + "\/compute\/databases": { + "get": { + "summary": "List dedicated databases.", + "operationId": "computeListDatabases", + "consumes": [], "produces": [ - "text\/plain" + "application\/json" ], "tags": [ - "assistant" + "compute" ], - "description": "Send a prompt to the AI assistant and receive a response. This endpoint allows you to interact with Appwrite's AI assistant by sending questions or prompts and receiving helpful responses in real-time through a server-sent events stream. ", + "description": "List all dedicated databases. Results support pagination.", "responses": { "200": { - "description": "Text", + "description": "Dedicated databases list", "schema": { - "type": "string" + "$ref": "#\/definitions\/dedicatedDatabaseList" } } }, "deprecated": false, "x-appwrite": { - "method": "chat", - "group": "console", - "weight": 511, + "method": "listDatabases", + "group": "databases", "cookies": false, "type": "", - "demo": "assistant\/chat.md", - "rate-limit": 15, + "demo": "compute\/list-databases.md", + "rate-limit": 0, "rate-time": 3600, - "rate-key": "userId:{userId}", - "scope": "assistant.read", + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/assistant\/chat.md", "auth": { "Project": [] } @@ -8528,64 +8346,56 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "prompt": { - "type": "string", - "description": "Prompt. A string containing questions asked to the AI assistant.", - "default": null, - "x-example": "<PROMPT>" - } - }, - "required": [ - "prompt" - ] - } + "name": "queries", + "description": "Array of query strings.", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] - } - }, - "\/console\/campaigns\/{campaignId}": { - "get": { - "summary": "Get campaign details", - "operationId": "consoleGetCampaign", - "consumes": [], + }, + "post": { + "summary": "Create a dedicated database.", + "operationId": "computeCreateDatabase", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Receive the details of a campaign using its ID.", + "description": "Create a new dedicated database with the chosen engine and configuration. Status will be 'provisioning' until the database is ready.", "responses": { "201": { - "description": "Campaign", + "description": "DedicatedDatabase", "schema": { - "$ref": "#\/definitions\/campaign" + "$ref": "#\/definitions\/dedicatedDatabase" } } }, "deprecated": false, "x-appwrite": { - "method": "getCampaign", - "group": null, - "weight": 933, + "method": "createDatabase", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-campaign.md", + "demo": "compute\/create-database.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-campaign.md", "auth": { "Project": [] } @@ -8597,54 +8407,250 @@ ], "parameters": [ { - "name": "campaignId", - "description": "ID of the campaign", - "required": true, - "type": "string", - "x-example": "<CAMPAIGN_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "databaseId": { + "type": "string", + "description": "Database ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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 display name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "engine": { + "type": "string", + "description": "Database engine: postgres, mysql, mariadb, or mongodb.", + "default": "postgres", + "x-example": "postgres" + }, + "version": { + "type": "string", + "description": "Database engine version. Defaults to latest for selected engine.", + "x-example": "17", + "x-nullable": true + }, + "region": { + "type": "string", + "description": "Region identifier. Use one of the enabled region codes (e.g., fra, nyc, syd).", + "default": "fra", + "x-example": "fra" + }, + "type": { + "type": "string", + "description": "Database type: shared (serverless) or dedicated (always-on).", + "default": "shared", + "x-example": "shared" + }, + "specification": { + "type": "string", + "description": "Specification identifier.", + "default": "starter", + "x-example": "<SPECIFICATION>" + }, + "backend": { + "type": "string", + "description": "Database backend provider: prisma, or edge.", + "default": "edge", + "x-example": "prisma" + }, + "cpu": { + "type": "integer", + "description": "CPU in millicores (125-16000).", + "default": 1000, + "x-example": 125, + "format": "int32" + }, + "memory": { + "type": "integer", + "description": "Memory in MB to allocate (128-65536).", + "default": 1024, + "x-example": 128, + "format": "int32" + }, + "storage": { + "type": "integer", + "description": "Storage in GB to allocate (1-16384).", + "default": 10, + "x-example": 1, + "format": "int32" + }, + "storageClass": { + "type": "string", + "description": "Storage class: ssd, nvme, or hdd.", + "default": "ssd", + "x-example": "ssd" + }, + "storageMaxGb": { + "type": "integer", + "description": "Maximum storage limit in GB. 0 uses system default.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "highAvailability": { + "type": "boolean", + "description": "Enable high availability.", + "default": false, + "x-example": false + }, + "highAvailabilityReplicaCount": { + "type": "integer", + "description": "Number of high availability replicas (0-5).", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "highAvailabilitySyncMode": { + "type": "string", + "description": "Replication sync mode. Allowed values: async, sync, quorum.", + "x-example": "async", + "x-nullable": true + }, + "networkMaxConnections": { + "type": "integer", + "description": "Maximum concurrent connections.", + "default": 100, + "x-example": 10, + "format": "int32" + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "default": 900, + "x-example": 60, + "format": "int32" + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes of inactivity before container scales to zero.", + "default": 15, + "x-example": 5, + "format": "int32" + }, + "backupEnabled": { + "type": "boolean", + "description": "Enable automatic backups.", + "default": true, + "x-example": false + }, + "backupPitr": { + "type": "boolean", + "description": "Enable point-in-time recovery.", + "default": true, + "x-example": false + }, + "backupCron": { + "type": "string", + "description": "Backup schedule in cron format.", + "default": "0 3 * * *", + "x-example": null + }, + "backupRetentionDays": { + "type": "integer", + "description": "Number of days to retain backups.", + "default": 14, + "x-example": 1, + "format": "int32" + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "default": 7, + "x-example": 1, + "format": "int32" + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "default": false, + "x-example": false + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "default": 85, + "x-example": 50, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "default": 0, + "x-example": 0, + "format": "int32" + }, + "metricsEnabled": { + "type": "boolean", + "description": "Enable metrics collection.", + "default": true, + "x-example": false + }, + "poolerEnabled": { + "type": "boolean", + "description": "Enable connection pooler on provision.", + "default": true, + "x-example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } } ] } }, - "\/console\/coupons\/{couponId}": { + "\/compute\/databases\/{databaseId}": { "get": { - "summary": "Get coupon details", - "operationId": "consoleGetCoupon", + "summary": "Get dedicated database.", + "operationId": "computeGetDatabase", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Get the details of a coupon using it's coupon ID.", + "description": "Get a dedicated database by its unique ID. Returns the database configuration and current status.", "responses": { - "201": { - "description": "Coupon", + "200": { + "description": "DedicatedDatabase", "schema": { - "$ref": "#\/definitions\/coupon" + "$ref": "#\/definitions\/dedicatedDatabase" } } }, "deprecated": false, "x-appwrite": { - "method": "getCoupon", - "group": null, - "weight": 930, + "method": "getDatabase", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-coupon.md", - "rate-limit": 50, + "demo": "compute\/get-database.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-coupon.md", "auth": { "Project": [] } @@ -8656,48 +8662,47 @@ ], "parameters": [ { - "name": "couponId", - "description": "ID of the coupon", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<COUPON_ID>", + "x-example": "<DATABASE_ID>", "in": "path" } ] - } - }, - "\/console\/oauth2-providers": { - "get": { - "summary": "List OAuth2 providers", - "operationId": "consoleListOAuth2Providers", - "consumes": [], + }, + "patch": { + "summary": "Update dedicated database.", + "operationId": "computeUpdateDatabase", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "List all OAuth2 providers supported by the Appwrite server, along with the parameters required to configure each provider. The response excludes mock providers but includes sandbox providers.", + "description": "Update a dedicated database configuration. All changes are applied with zero downtime. Resource changes (cpu, memory) are handled via rolling cutover. Storage expansion is done online. All other settings are applied in-place.", "responses": { "200": { - "description": "Console OAuth2 Providers List", + "description": "DedicatedDatabase", "schema": { - "$ref": "#\/definitions\/consoleOAuth2ProviderList" + "$ref": "#\/definitions\/dedicatedDatabase" } } }, "deprecated": false, "x-appwrite": { - "method": "listOAuth2Providers", - "group": "console", - "weight": 508, + "method": "updateDatabase", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/list-o-auth-2-providers.md", + "demo": "compute\/update-database.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console" ], @@ -8711,47 +8716,263 @@ { "Project": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database display name.", + "x-example": "<NAME>", + "x-nullable": true + }, + "status": { + "type": "string", + "description": "Database status. Allowed values: ready, paused, inactive. Set to \"paused\" to pause, \"ready\" to resume, or \"inactive\" to spin down a shared database.", + "x-example": "ready", + "x-nullable": true + }, + "specification": { + "type": "string", + "description": "Specification. Changes cpu, memory, and type based on specification config.", + "x-example": "<SPECIFICATION>", + "x-nullable": true + }, + "cpu": { + "type": "number", + "description": "CPU cores to allocate (125-16000).", + "x-example": 125, + "format": "float", + "x-nullable": true + }, + "memory": { + "type": "integer", + "description": "Memory in MB to allocate (128-65536).", + "x-example": 128, + "format": "int32", + "x-nullable": true + }, + "storage": { + "type": "integer", + "description": "Storage in GB to allocate (1-16384).", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "storageClass": { + "type": "string", + "description": "Storage class. Allowed values: ssd, nvme, hdd.", + "x-example": "ssd", + "x-nullable": true + }, + "highAvailability": { + "type": "boolean", + "description": "Enable high availability.", + "x-example": false, + "x-nullable": true + }, + "highAvailabilityReplicaCount": { + "type": "integer", + "description": "Number of high availability replicas (0-5).", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "networkMaxConnections": { + "type": "integer", + "description": "Maximum concurrent connections.", + "x-example": 10, + "format": "int32", + "x-nullable": true + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds (60-86400).", + "x-example": 60, + "format": "int32", + "x-nullable": true + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "idleTimeoutMinutes": { + "type": "integer", + "description": "Minutes before container scales to zero.", + "x-example": 5, + "format": "int32", + "x-nullable": true + }, + "backupEnabled": { + "type": "boolean", + "description": "Enable automatic backups.", + "x-example": false, + "x-nullable": true + }, + "backupPitr": { + "type": "boolean", + "description": "Enable point-in-time recovery.", + "x-example": false, + "x-nullable": true + }, + "backupCron": { + "type": "string", + "description": "Backup schedule in cron format.", + "x-example": null, + "x-nullable": true + }, + "backupRetentionDays": { + "type": "integer", + "description": "Days to retain backups.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Days to retain PITR data.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Enable automatic storage expansion when usage exceeds threshold.", + "x-example": false, + "x-nullable": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage (50-95) that triggers automatic expansion.", + "x-example": 50, + "format": "int32", + "x-nullable": true + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "poolerEnabled": { + "type": "boolean", + "description": "Attach or detach the connection pooler sidecar. Set to true to add the sidecar (no-op if already attached) or false to remove it.", + "x-example": false, + "x-nullable": true + }, + "metricsEnabled": { + "type": "boolean", + "description": "Enable or disable the metrics-agent sidecar.", + "x-example": false, + "x-nullable": true + }, + "metricsTraceSampleRate": { + "type": "number", + "description": "Fraction of queries to trace (0.0\u20131.0). Forwarded to the sidecar.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "metricsSlowQueryLogThresholdMs": { + "type": "integer", + "description": "Threshold in ms above which queries are logged as slow. Forwarded to the sidecar.", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Enable the SQL API sidecar for this database.", + "x-example": false, + "x-nullable": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types the SQL API accepts. Allowed values: SELECT, INSERT, UPDATE, DELETE.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution (1-1000000).", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes (1024-104857600).", + "x-example": 1024, + "format": "int32", + "x-nullable": true + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Per-call SQL API execution timeout in seconds (1-300).", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + } + } + } ] - } - }, - "\/console\/plans": { - "get": { - "summary": "Get plans", - "operationId": "consoleGetPlans", - "consumes": [], + }, + "delete": { + "summary": "Delete dedicated database.", + "operationId": "computeDeleteDatabase", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Return a list of all available plans.", + "description": "Delete a dedicated database. This action is irreversible. The database status will be set to 'deleting' and all resources will be cleaned up.", "responses": { - "200": { - "description": "Billing plan list", - "schema": { - "$ref": "#\/definitions\/billingPlanList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getPlans", - "group": null, - "weight": 928, + "method": "deleteDatabase", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-plans.md", + "demo": "compute\/delete-database.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-plans.md", "auth": { "Project": [] } @@ -8763,61 +8984,52 @@ ], "parameters": [ { - "name": "platform", - "description": "Platform type", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "type": "string", - "x-example": "appwrite", - "enum": [ - "appwrite", - "imagine" - ], - "x-enum-name": null, - "x-enum-keys": [], - "default": "appwrite", - "in": "query" + "x-example": "<DATABASE_ID>", + "in": "path" } ] } }, - "\/console\/plans\/{planId}": { + "\/compute\/databases\/{databaseId}\/backups": { "get": { - "summary": "Get plan", - "operationId": "consoleGetPlan", + "summary": "List database backups.", + "operationId": "computeListDatabaseBackups", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Get the details of a plan using its plan ID.", + "description": "List all backups for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "billingPlan", + "description": "BackupList", "schema": { - "$ref": "#\/definitions\/billingPlan" + "$ref": "#\/definitions\/dedicatedDatabaseBackupList" } } }, "deprecated": false, "x-appwrite": { - "method": "getPlan", - "group": null, - "weight": 929, + "method": "listDatabaseBackups", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-plan.md", + "demo": "compute\/list-database-backups.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "databases.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-plan.md", "auth": { "Project": [] } @@ -8829,54 +9041,64 @@ ], "parameters": [ { - "name": "planId", - "description": "Plan id", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<PLAN_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: status, type, databaseId", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] - } - }, - "\/console\/programs\/{programId}": { - "get": { - "summary": "Get program details", - "operationId": "consoleGetProgram", - "consumes": [], + }, + "post": { + "summary": "Create a database backup.", + "operationId": "computeCreateDatabaseBackup", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Receive the details of a program using its ID.", + "description": "Create a manual backup of a dedicated database. The backup will be created asynchronously and its status can be checked via the get backup endpoint.", "responses": { - "201": { - "description": "Program", + "202": { + "description": "Backup", "schema": { - "$ref": "#\/definitions\/program" + "$ref": "#\/definitions\/dedicatedDatabaseBackup" } } }, "deprecated": false, "x-appwrite": { - "method": "getProgram", - "group": null, - "weight": 931, + "method": "createDatabaseBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-program.md", + "demo": "compute\/create-database-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-program.md", "auth": { "Project": [] } @@ -8888,20 +9110,35 @@ ], "parameters": [ { - "name": "programId", - "description": "ID of the program", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<PROGRAM_ID>", + "x-example": "<DATABASE_ID>", "in": "path" - } - ] + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Backup type: full or incremental.", + "default": "full", + "x-example": "full" + } + } + } + } + ] } }, - "\/console\/programs\/{programId}\/memberships": { - "post": { - "summary": "Create program membership", - "operationId": "consoleCreateProgramMembership", + "\/compute\/databases\/{databaseId}\/backups\/storage": { + "put": { + "summary": "Update database backup storage.", + "operationId": "computeUpdateDatabaseBackupStorage", "consumes": [ "application\/json" ], @@ -8909,35 +9146,33 @@ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Create a new membership for an account to a program.", + "description": "Configure off-cluster backup storage for a dedicated database. Supports S3, GCS, and Azure Blob Storage destinations. Backups will be stored to the configured destination in addition to on-cluster storage.", "responses": { "200": { - "description": "Organization", + "description": "BackupStorageConfig", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/dedicatedDatabaseBackupStorage" } } }, "deprecated": false, "x-appwrite": { - "method": "createProgramMembership", - "group": null, - "weight": 932, + "method": "updateDatabaseBackupStorage", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/create-program-membership.md", - "rate-limit": 10, + "demo": "compute\/update-database-backup-storage.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/create-program-membership.md", "auth": { "Project": [] } @@ -8949,54 +9184,105 @@ ], "parameters": [ { - "name": "programId", - "description": "ID of the program", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<PROGRAM_ID>", + "x-example": "<DATABASE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Storage provider for off-cluster backups. Allowed values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "x-example": "s3" + }, + "bucket": { + "type": "string", + "description": "Storage bucket or container name.", + "x-example": "<BUCKET>" + }, + "region": { + "type": "string", + "description": "Storage region.", + "default": "", + "x-example": "<REGION>" + }, + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "default": "backups\/", + "x-example": "<PREFIX>" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage (e.g. MinIO).", + "default": "", + "x-example": "<ENDPOINT>" + }, + "accessKey": { + "type": "string", + "description": "Access key or client ID for authentication.", + "x-example": "<ACCESS_KEY>" + }, + "secretKey": { + "type": "string", + "description": "Secret key or service account JSON for authentication.", + "x-example": "<SECRET_KEY>" + } + }, + "required": [ + "provider", + "bucket", + "accessKey", + "secretKey" + ] + } } ] } }, - "\/console\/regions": { + "\/compute\/databases\/{databaseId}\/backups\/{backupId}": { "get": { - "summary": "List Regions", - "operationId": "consoleListRegions", + "summary": "Get a database backup.", + "operationId": "computeGetDatabaseBackup", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Get all available regions for the console.", + "description": "Get details of a specific database backup including its status, size, and timestamps.", "responses": { "200": { - "description": "Regions list", + "description": "Backup", "schema": { - "$ref": "#\/definitions\/consoleRegionList" + "$ref": "#\/definitions\/dedicatedDatabaseBackup" } } }, "deprecated": false, "x-appwrite": { - "method": "listRegions", - "group": null, - "weight": 927, + "method": "getDatabaseBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/list-regions.md", + "demo": "compute\/get-database-backup.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "databases.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/list-regions.md", "auth": { "Project": [] } @@ -9005,19 +9291,39 @@ { "Project": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "backupId", + "description": "Backup ID.", + "required": true, + "type": "string", + "x-example": "<BACKUP_ID>", + "in": "path" + } ] - } - }, - "\/console\/resources": { - "get": { - "summary": "Check resource ID availability", - "operationId": "consoleGetResource", - "consumes": [], - "produces": [], + }, + "delete": { + "summary": "Delete a database backup.", + "operationId": "computeDeleteDatabaseBackup", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], "tags": [ - "console" + "compute" ], - "description": "Check if a resource ID is available.", + "description": "Delete a database backup. This will permanently remove the backup from storage and cannot be undone.", "responses": { "204": { "description": "No content" @@ -9025,16 +9331,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "getResource", - "group": null, - "weight": 512, + "method": "deleteDatabaseBackup", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-resource.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.read", + "demo": "compute\/delete-database-backup.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", "platforms": [ "console" ], @@ -9051,61 +9356,112 @@ ], "parameters": [ { - "name": "value", - "description": "Resource value.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<VALUE>", - "in": "query" + "x-example": "<DATABASE_ID>", + "in": "path" }, { - "name": "type", - "description": "Resource type.", + "name": "backupId", + "description": "Backup ID.", "required": true, "type": "string", - "x-example": "rules", - "enum": [ - "rules" - ], - "x-enum-name": "ConsoleResourceType", - "x-enum-keys": [], - "in": "query" + "x-example": "<BACKUP_ID>", + "in": "path" } ] } }, - "\/console\/scopes\/organization": { + "\/compute\/databases\/{databaseId}\/branches": { "get": { - "summary": "List organization scopes", - "operationId": "consoleListOrganizationScopes", + "summary": "List database branches.", + "operationId": "computeListDatabaseBranches", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "List all scopes available for organization API keys, along with a description for each scope.", + "description": "List all ephemeral branches for a dedicated database. Returns branch metadata including ID, name, namespace, and expiration time.", "responses": { "200": { - "description": "Console Key Scopes List", + "description": "BranchList", "schema": { - "$ref": "#\/definitions\/consoleKeyScopeList" + "$ref": "#\/definitions\/dedicatedDatabaseBranchList" } } }, "deprecated": false, "x-appwrite": { - "method": "listOrganizationScopes", - "group": "console", - "weight": 510, + "method": "listDatabaseBranches", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/list-organization-scopes.md", + "demo": "compute\/list-database-branches.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + } + ] + }, + "post": { + "summary": "Create a database branch.", + "operationId": "computeCreateDatabaseBranch", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "compute" + ], + "description": "Create an ephemeral database branch from the primary via PVC snapshot. The branch is a full copy of the database at the current point in time, useful for testing schema migrations or running experiments without affecting production data. Branches expire after the configured TTL (default 24 hours). The branch is created asynchronously.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "schema": { + "$ref": "#\/definitions\/dedicatedDatabase" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createDatabaseBranch", + "group": "databases", + "cookies": false, + "type": "", + "demo": "compute\/create-database-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", "platforms": [ "console" ], @@ -9119,41 +9475,139 @@ { "Project": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "branchId": { + "type": "string", + "description": "Branch ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<BRANCH_ID>" + }, + "ttl": { + "type": "integer", + "description": "Time-to-live in seconds before the branch expires. Min 300 (5 min), max 604800 (7 days). Default: 86400 (24h).", + "default": 86400, + "x-example": 300, + "format": "int32" + } + } + } + } ] } }, - "\/console\/scopes\/project": { + "\/compute\/databases\/{databaseId}\/branches\/{branchId}": { + "delete": { + "summary": "Delete a database branch.", + "operationId": "computeDeleteDatabaseBranch", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "compute" + ], + "description": "Delete an ephemeral database branch. This removes the branch namespace, its PVC, and the associated VolumeSnapshot. The deletion runs asynchronously and is irreversible.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "schema": { + "$ref": "#\/definitions\/dedicatedDatabase" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDatabaseBranch", + "group": "databases", + "cookies": false, + "type": "", + "demo": "compute\/delete-database-branch.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "branchId", + "description": "Branch ID.", + "required": true, + "type": "string", + "x-example": "<BRANCH_ID>", + "in": "path" + } + ] + } + }, + "\/compute\/databases\/{databaseId}\/connections": { "get": { - "summary": "List project scopes", - "operationId": "consoleListProjectScopes", + "summary": "List database connections.", + "operationId": "computeListDatabaseConnections", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "List all scopes available for project API keys, along with a description for each scope.", + "description": "List all database connection users\/roles for a dedicated database.", "responses": { "200": { - "description": "Console Key Scopes List", + "description": "Dedicated database connections list", "schema": { - "$ref": "#\/definitions\/consoleKeyScopeList" + "$ref": "#\/definitions\/dedicatedDatabaseConnectionList" } } }, "deprecated": false, "x-appwrite": { - "method": "listProjectScopes", - "group": "console", - "weight": 509, + "method": "listDatabaseConnections", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/list-project-scopes.md", + "demo": "compute\/list-database-connections.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.read", "platforms": [ "console" ], @@ -9167,13 +9621,21 @@ { "Project": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + } ] - } - }, - "\/console\/sources": { + }, "post": { - "summary": "Create source", - "operationId": "consoleCreateSource", + "summary": "Create a database connection user.", + "operationId": "computeCreateDatabaseConnection", "consumes": [ "application\/json" ], @@ -9181,35 +9643,33 @@ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Create a new source.", + "description": "Create a new database connection user\/role. Returns the connection details including the generated credentials.", "responses": { "201": { - "description": "Any", + "description": "Connection", "schema": { - "$ref": "#\/definitions\/any" + "$ref": "#\/definitions\/dedicatedDatabaseConnection" } } }, "deprecated": false, "x-appwrite": { - "method": "createSource", - "group": null, - "weight": 934, + "method": "createDatabaseConnection", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/create-source.md", - "rate-limit": 50, + "demo": "compute\/create-database-connection.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/create-source.md", "auth": { "Project": [] } @@ -9220,92 +9680,75 @@ } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "ref": { - "type": "string", - "description": "Ref param", - "default": null, - "x-example": "<REF>", - "x-nullable": true - }, - "referrer": { - "type": "string", - "description": "Referrer", - "default": null, - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "utmSource": { - "type": "string", - "description": "Utm source", - "default": null, - "x-example": "<UTM_SOURCE>", - "x-nullable": true - }, - "utmCampaign": { + "username": { "type": "string", - "description": "Utm campaign", - "default": null, - "x-example": "<UTM_CAMPAIGN>", - "x-nullable": true + "description": "Connection username.", + "x-example": "<USERNAME>" }, - "utmMedium": { + "role": { "type": "string", - "description": "Utm medium", - "default": null, - "x-example": "<UTM_MEDIUM>", - "x-nullable": true + "description": "Connection role for the new user. Common values: readonly (read-only access), readwrite (full read and write access).", + "default": "readwrite", + "x-example": "<ROLE>" } - } + }, + "required": [ + "username" + ] } } ] } }, - "\/console\/suggestions\/columns": { - "get": { - "summary": "Get column suggestions with size limits for a table, using database context and an optional user provided context", - "operationId": "consoleSuggestColumns", - "consumes": [], + "\/compute\/databases\/{databaseId}\/connections\/{connectionId}": { + "delete": { + "summary": "Delete a database connection.", + "operationId": "computeDeleteDatabaseConnection", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Suggests column names and their size limits based on the provided table name. The API will also analyze other tables in the same database to provide context-aware suggestions, ensuring consistency across schema design. Users may optionally provide custom context to further refine the suggestions.", + "description": "Delete a database connection user\/role. The connection will be terminated immediately.", "responses": { - "200": { - "description": "Columns List", - "schema": { - "$ref": "#\/definitions\/columnList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "suggestColumns", - "group": null, - "weight": 935, + "method": "deleteDatabaseConnection", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/suggest-columns.md", - "rate-limit": 10, + "demo": "compute\/delete-database-connection.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-columns.md", "auth": { "Project": [] } @@ -9322,76 +9765,47 @@ "required": true, "type": "string", "x-example": "<DATABASE_ID>", - "in": "query" + "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "connectionId", + "description": "Connection ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", - "in": "query" - }, - { - "name": "context", - "description": "Optional user provided context to refine suggestions.", - "required": false, - "type": "string", - "x-example": "<CONTEXT>", - "in": "query" - }, - { - "name": "min", - "description": "Minimum number of suggestions to generate.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 3, - "in": "query" - }, - { - "name": "max", - "description": "Maximum number of suggestions to generate.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 7, - "in": "query" + "x-example": "<CONNECTION_ID>", + "in": "path" } ] } }, - "\/console\/suggestions\/indexes": { + "\/compute\/databases\/{databaseId}\/credentials": { "get": { - "summary": "Get index suggestions for table columns, using database context", - "operationId": "consoleSuggestIndexes", + "summary": "Get database credentials.", + "operationId": "computeGetDatabaseCredentials", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Suggests database indexes for table columns based on the provided table structure and existing columns. The API will also analyze the table's column types, names, and patterns to recommend optimal indexes that improve query performance for common database operations like filtering, sorting, and searching.", + "description": "Get connection credentials for a dedicated database. Returns the hostname, port, username, password, database name, and full connection string.", "responses": { "200": { - "description": "Column Indexes List", + "description": "Credentials", "schema": { - "$ref": "#\/definitions\/columnIndexList" + "$ref": "#\/definitions\/dedicatedDatabaseCredentials" } } }, "deprecated": false, "x-appwrite": { - "method": "suggestIndexes", - "group": null, - "weight": 936, + "method": "getDatabaseCredentials", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/suggest-indexes.md", - "rate-limit": 10, + "demo": "compute\/get-database-credentials.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", @@ -9400,7 +9814,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-indexes.md", "auth": { "Project": [] } @@ -9417,77 +9830,47 @@ "required": true, "type": "string", "x-example": "<DATABASE_ID>", - "in": "query" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "query" - }, - { - "name": "min", - "description": "Minimum number of suggestions to generate.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 1, - "in": "query" - }, - { - "name": "max", - "description": "Maximum number of suggestions to generate.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 4, - "in": "query" + "in": "path" } ] - } - }, - "\/console\/suggestions\/queries": { - "get": { - "summary": "Get query suggestions for a list resource from free-text intent", - "operationId": "consoleSuggestQueries", - "consumes": [], + }, + "post": { + "summary": "Update database credentials.", + "operationId": "computeUpdateDatabaseCredentials", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Suggest valid Appwrite query JSON objects for a supported list resource from free-text user intent. The endpoint picks a validator based on `resource` \u2014 for system resources it uses the static validator and its allowed attributes, and for user-owned table rows it loads the table schema and validates against those attributes at request time. The returned queries are guaranteed to parse and pass the relevant queries validator.\n", + "description": "Rotate the primary credentials for a dedicated database. Generates a new password and updates the database. Previous credentials will stop working immediately.", "responses": { "200": { - "description": "Any", + "description": "Credentials", "schema": { - "$ref": "#\/definitions\/any" + "$ref": "#\/definitions\/dedicatedDatabaseCredentials" } } }, "deprecated": false, "x-appwrite": { - "method": "suggestQueries", - "group": null, - "weight": 937, + "method": "updateDatabaseCredentials", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/suggest-queries.md", - "rate-limit": 10, + "demo": "compute\/update-database-credentials.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "databases.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-queries.md", "auth": { "Project": [] } @@ -9499,227 +9882,49 @@ ], "parameters": [ { - "name": "resource", - "description": "Resource to generate queries for.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "activities", - "enum": [ - "activities", - "activityevents", - "archives", - "credits", - "dnsrecords", - "domains", - "invoices", - "paymentmethods", - "policies", - "projects", - "restorations", - "teamaggregations", - "teams", - "databases", - "tables", - "rows", - "schedules", - "platforms", - "keys", - "devkeys", - "webhooks", - "certificates", - "realtime", - "rules", - "installations", - "repositories", - "vcscomments", - "vcscommentlocks", - "reports", - "insights", - "users", - "cache", - "tokens", - "authenticators", - "challenges", - "sessions", - "identities", - "memberships", - "buckets", - "providers", - "messages", - "topics", - "subscribers", - "targets", - "companies", - "billingaddresses", - "billingaggregations", - "billingaggregationresources", - "billingteamprojectaggregations", - "billingteamaggregations_v2", - "billingteamaggregationresources", - "billinginvoices_v2", - "billingaddons", - "alerts", - "payments", - "billingdiscounts", - "sources", - "deals", - "blocks", - "threats", - "feedbacks", - "sh_installations", - "attributes", - "indexes", - "functions", - "sites", - "deployments", - "executions", - "variables", - "migrations", - "resourcetokens", - "transactions", - "transactionlogs", - "presencelogs", - "stats" - ], - "x-enum-name": "QuerySuggestionResource", - "x-enum-keys": [ - "activities", - "activity_events", - "archives", - "credits", - "dns_records", - "domains", - "invoices", - "payment_methods", - "policies", - "projects", - "restorations", - "team_aggregations", - "teams", - "databases", - "tables", - "rows", - "schedules", - "platforms", - "keys", - "dev_keys", - "webhooks", - "certificates", - "realtime", - "rules", - "installations", - "repositories", - "vcs_comments", - "vcs_comment_locks", - "reports", - "insights", - "users", - "cache", - "tokens", - "authenticators", - "challenges", - "sessions", - "identities", - "memberships", - "buckets", - "providers", - "messages", - "topics", - "subscribers", - "targets", - "companies", - "billing_addresses", - "billing_aggregations", - "billing_aggregation_resources", - "billing_team_project_aggregations", - "billing_team_aggregations_v2", - "billing_team_aggregation_resources", - "billing_invoices_v2", - "billing_addons", - "alerts", - "payments", - "billing_discounts", - "sources", - "deals", - "blocks", - "threats", - "feedbacks", - "sh_installations", - "attributes", - "indexes", - "functions", - "sites", - "deployments", - "executions", - "variables", - "migrations", - "resource_tokens", - "transactions", - "transaction_logs", - "presence_logs", - "stats" - ], - "in": "query" - }, - { - "name": "input", - "description": "Natural language query intent used to generate filters\/sorting\/pagination.", - "required": true, - "type": "string", - "x-example": "<INPUT>", - "in": "query" - }, - { - "name": "databaseId", - "description": "Database ID. Required when resource is `tables` or `rows`.", - "required": false, - "type": "string", "x-example": "<DATABASE_ID>", - "in": "query" - }, - { - "name": "tableId", - "description": "Table ID. Required when resource is `rows`.", - "required": false, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "query" + "in": "path" } ] } }, - "\/console\/templates\/email\/{templateId}": { - "get": { - "summary": "Get email template", - "operationId": "consoleGetEmailTemplate", - "consumes": [], + "\/compute\/databases\/{databaseId}\/execution": { + "post": { + "summary": "Execute a SQL statement against a dedicated database.", + "operationId": "computeCreateDatabaseExecution", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Get the Appwrite built-in default email template for the specified type and locale. Always returns the unmodified default, ignoring any custom project overrides.", + "description": "Execute SQL through the console-facing Cloud endpoint. Cloud proxies through the edge platform to the per-database SQL API sidecar. Application traffic should bypass cloud entirely and POST directly to the per-database hostname: `https:\/\/db-{project}-{db}.{region}.appwrite.network\/v1\/sql\/execute` with an `X-Appwrite-Key` header \u2014 that path scales to the whole DB fleet without a per-query cloud round-trip. The statement type must be on the database's configured allow-list. Use bound parameters for any user-supplied values \u2014 the API does not interpolate raw strings.", "responses": { "200": { - "description": "EmailTemplate", + "description": "Execution", "schema": { - "$ref": "#\/definitions\/emailTemplate" + "$ref": "#\/definitions\/dedicatedDatabaseExecution" } } }, "deprecated": false, "x-appwrite": { - "method": "getEmailTemplate", - "group": null, - "weight": 507, + "method": "createDatabaseExecution", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/get-email-template.md", + "demo": "compute\/create-database-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "databases.write", "platforms": [ "console" ], @@ -9736,203 +9941,80 @@ ], "parameters": [ { - "name": "templateId", - "description": "Email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [], + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "locale", - "description": "Template locale. If left empty, the fallback locale (en) will be used.", - "required": false, - "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": "ProjectEmailTemplateLocale", - "x-enum-keys": [], - "default": "", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "sql": { + "type": "string", + "description": "SQL statement to execute. Exactly one statement per request.", + "x-example": "<SQL>" + }, + "bindings": { + "type": "object", + "description": "Optional bound parameters. Pass either a positional list or a name => value map matching the placeholder style used in the SQL.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "timeoutSeconds": { + "type": "integer", + "description": "Per-call execution timeout override. Must be less than or equal to the database's configured sqlApiTimeoutSeconds.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "sql" + ] + } } ] } }, - "\/console\/variables": { - "get": { - "summary": "Get variables", - "operationId": "consoleVariables", - "consumes": [], + "\/compute\/databases\/{databaseId}\/explanation": { + "post": { + "summary": "Explain query execution plan.", + "operationId": "computeCreateDatabaseQueryExplanation", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "console" + "compute" ], - "description": "Get all Environment Variables that are relevant for the console.", + "description": "Run EXPLAIN on a query against a dedicated database. Available for SQL-compatible engines. Returns the query execution plan including scan types, estimated cost, and resource usage. Optionally run EXPLAIN ANALYZE to get actual execution statistics.", "responses": { "200": { - "description": "Console Variables", + "description": "QueryExplanation", "schema": { - "$ref": "#\/definitions\/consoleVariables" + "$ref": "#\/definitions\/dedicatedDatabaseQueryExplanation" } } }, "deprecated": false, "x-appwrite": { - "method": "variables", - "group": "console", - "weight": 506, + "method": "createDatabaseQueryExplanation", + "group": "databases", "cookies": false, "type": "", - "demo": "console\/variables.md", + "demo": "compute\/create-database-query-explanation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "databases.read", "platforms": [ "console" ], @@ -9946,127 +10028,101 @@ { "Project": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "Query to explain. Must be a valid query for the database engine.", + "x-example": "<QUERY>" + }, + "analyze": { + "type": "boolean", + "description": "Run EXPLAIN ANALYZE to get actual execution statistics. This executes the query.", + "default": false, + "x-example": false + } + }, + "required": [ + "query" + ] + } + } ] } }, - "\/databases": { + "\/compute\/databases\/{databaseId}\/extensions": { "get": { - "summary": "List databases", - "operationId": "databasesList", + "summary": "List database extensions.", + "operationId": "computeListDatabaseExtensions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "List installed and available extensions for a PostgreSQL database.", "responses": { "200": { - "description": "Databases List", + "description": "Extensions", "schema": { - "$ref": "#\/definitions\/databaseList" + "$ref": "#\/definitions\/dedicatedDatabaseExtensions" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "list", + "method": "listDatabaseExtensions", "group": "databases", - "weight": 704, "cookies": false, "type": "", - "demo": "databases\/list.md", + "demo": "compute\/list-database-extensions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.list" - }, - "methods": [ - { - "name": "list", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "queries", - "search", - "total" - ], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/databaseList" - } - ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", - "demo": "databases\/list.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.list" - } - } - ], "auth": { "Project": [] } }, "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", - "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": "databaseId", + "description": "Database 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": "<DATABASE_ID>", + "in": "path" } ] }, "post": { - "summary": "Create database", - "operationId": "databasesCreate", + "summary": "Install a database extension.", + "operationId": "computeCreateDatabaseExtension", "consumes": [ "application\/json" ], @@ -10074,110 +10130,64 @@ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Create a new Database.\n", + "description": "Install a database extension. Only available for PostgreSQL databases. The install runs asynchronously; poll the extensions list endpoint for status.", "responses": { - "201": { - "description": "Database", + "202": { + "description": "DedicatedDatabase", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/dedicatedDatabase" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "create", + "method": "createDatabaseExtension", "group": "databases", - "weight": 700, "cookies": false, "type": "", - "demo": "databases\/create.md", + "demo": "compute\/create-database-extension.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.create" - }, - "methods": [ - { - "name": "create", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "name", - "enabled" - ], - "required": [ - "databaseId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/database" - } - ], - "description": "Create a new Database.\n", - "demo": "databases\/create.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.create" - } - } - ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_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, + "description": "Extension name (e.g., pgvector, postgis, uuid-ossp).", "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" ] } @@ -10185,76 +10195,134 @@ ] } }, - "\/databases\/transactions": { + "\/compute\/databases\/{databaseId}\/extensions\/{extensionName}": { + "delete": { + "summary": "Uninstall a database extension.", + "operationId": "computeDeleteDatabaseExtension", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "compute" + ], + "description": "Uninstall a database extension from a PostgreSQL database. The uninstall runs asynchronously; poll the extensions list endpoint for status.", + "responses": { + "202": { + "description": "DedicatedDatabase", + "schema": { + "$ref": "#\/definitions\/dedicatedDatabase" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDatabaseExtension", + "group": "databases", + "cookies": false, + "type": "", + "demo": "compute\/delete-database-extension.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "extensionName", + "description": "Extension name to uninstall.", + "required": true, + "type": "string", + "x-example": "<EXTENSION_NAME>", + "in": "path" + } + ] + } + }, + "\/compute\/databases\/{databaseId}\/ha": { "get": { - "summary": "List transactions", - "operationId": "databasesListTransactions", + "summary": "Get HA status.", + "operationId": "computeGetDatabaseHAStatus", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "List transactions across all databases.", + "description": "Get high availability status for a dedicated database. Returns replica statuses, replication lag, and sync mode.", "responses": { "200": { - "description": "Transaction List", + "description": "HAStatus", "schema": { - "$ref": "#\/definitions\/transactionList" + "$ref": "#\/definitions\/dedicatedDatabaseHAStatus" } } }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 774, + "method": "getDatabaseHAStatus", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/list-transactions.md", + "demo": "compute\/get-database-ha-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": "databases.read", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-transactions.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "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).", - "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" } ] - }, + } + }, + "\/compute\/databases\/{databaseId}\/ha\/failovers": { "post": { - "summary": "Create transaction", - "operationId": "databasesCreateTransaction", + "summary": "Trigger manual failover.", + "operationId": "computeCreateDatabaseFailover", "consumes": [ "application\/json" ], @@ -10262,62 +10330,62 @@ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Create a new transaction.", + "description": "Trigger a manual failover for a dedicated database with high availability enabled. Promotes a replica to primary. The failover runs asynchronously; poll the database document for status updates.", "responses": { - "201": { - "description": "Transaction", + "202": { + "description": "DedicatedDatabase", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/dedicatedDatabase" } } }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 770, + "method": "createDatabaseFailover", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-transaction.md", + "demo": "compute\/create-database-failover.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "databases.write", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_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" + "targetReplicaId": { + "type": "string", + "description": "Target replica ID to promote. If not specified, the healthiest replica is selected.", + "x-example": "<TARGET_REPLICA_ID>", + "x-nullable": true } } } @@ -10325,72 +10393,168 @@ ] } }, - "\/databases\/transactions\/{transactionId}": { + "\/compute\/databases\/{databaseId}\/insights": { "get": { - "summary": "Get transaction", - "operationId": "databasesGetTransaction", + "summary": "Get database performance insights.", + "operationId": "computeGetDatabaseInsights", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Get a transaction by its unique ID.", + "description": "Get query-level performance insights for a dedicated database. Returns top queries by execution time, wait events, and aggregate query statistics.", "responses": { "200": { - "description": "Transaction", + "description": "PerformanceInsights", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/dedicatedDatabasePerformanceInsights" } } }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 771, + "method": "getDatabaseInsights", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/get-transaction.md", + "demo": "compute\/get-database-insights.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rows.read", + "scope": "databases.read", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "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": "period", + "description": "Analysis period for performance insights. Allowed values: 1h (last hour), 24h (last 24 hours), 7d (last 7 days).", + "required": false, + "type": "string", + "x-example": "1h", + "default": "1h", + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of queries to return.", + "required": false, + "type": "integer", + "format": "int32", + "default": 25, + "in": "query" } ] - }, + } + }, + "\/compute\/databases\/{databaseId}\/logs": { + "get": { + "summary": "List database audit logs.", + "operationId": "computeListDatabaseLogs", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "compute" + ], + "description": "List audit logs for a dedicated database. Returns DDL operations and security-relevant events.", + "responses": { + "200": { + "description": "Dedicated database audit logs list", + "schema": { + "$ref": "#\/definitions\/dedicatedDatabaseAuditLogList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listDatabaseLogs", + "group": "databases", + "cookies": false, + "type": "", + "demo": "compute\/list-database-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "startTime", + "description": "Start time in ISO 8601 format.", + "required": false, + "type": "string", + "x-example": "<START_TIME>", + "in": "query" + }, + { + "name": "endTime", + "description": "End time in ISO 8601 format.", + "required": false, + "type": "string", + "x-example": "<END_TIME>", + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of logs to return.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 100, + "in": "query" + } + ] + } + }, + "\/compute\/databases\/{databaseId}\/maintenance": { "patch": { - "summary": "Update transaction", - "operationId": "databasesUpdateTransaction", + "summary": "Update database maintenance window.", + "operationId": "computeUpdateDatabaseMaintenanceWindow", "consumes": [ "application\/json" ], @@ -10398,56 +10562,49 @@ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "description": "Update the maintenance window for a dedicated database. Maintenance operations like minor version upgrades will be performed during this window.", "responses": { "200": { - "description": "Transaction", + "description": "DedicatedDatabase", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/dedicatedDatabase" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 772, + "method": "updateDatabaseMaintenanceWindow", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/update-transaction.md", + "demo": "compute\/update-database-maintenance-window.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "databases.write", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "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" }, { @@ -10456,87 +10613,97 @@ "schema": { "type": "object", "properties": { - "commit": { - "type": "boolean", - "description": "Commit transaction?", - "default": false, - "x-example": false + "day": { + "type": "string", + "description": "Day of the week for the maintenance window. Allowed values: sun, mon, tue, wed, thu, fri, sat.", + "x-example": "sun" }, - "rollback": { - "type": "boolean", - "description": "Rollback transaction?", - "default": false, - "x-example": false + "hourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) for maintenance window start.", + "x-example": 0, + "format": "int32" } - } + }, + "required": [ + "day", + "hourUtc" + ] } } ] - }, - "delete": { - "summary": "Delete transaction", - "operationId": "databasesDeleteTransaction", - "consumes": [ + } + }, + "\/compute\/databases\/{databaseId}\/metrics": { + "get": { + "summary": "Get database metrics.", + "operationId": "computeGetDatabaseMetrics", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "databases" + "compute" ], - "description": "Delete a transaction by its unique ID.", + "description": "Get detailed performance metrics for a dedicated database. Returns CPU, memory, storage, IOPS, QPS, and connection metrics.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "DatabaseMetrics", + "schema": { + "$ref": "#\/definitions\/dedicatedDatabaseMetrics" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 773, + "method": "getDatabaseMetrics", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/delete-transaction.md", + "demo": "compute\/get-database-metrics.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "databases.read", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "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": "period", + "description": "Metrics aggregation period. Allowed values: 1h (last hour), 24h (last 24 hours), 7d (last 7 days), 30d (last 30 days).", + "required": false, + "type": "string", + "x-example": "1h", + "default": "24h", + "in": "query" } ] } }, - "\/databases\/transactions\/{transactionId}\/operations": { + "\/compute\/databases\/{databaseId}\/migrations": { "post": { - "summary": "Create operations", - "operationId": "databasesCreateOperations", + "summary": "Migrate database between shared and dedicated.", + "operationId": "computeCreateDatabaseMigration", "consumes": [ "application\/json" ], @@ -10544,56 +10711,49 @@ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Create multiple operations in a single transaction.", + "description": "Migrate a database between shared and dedicated types. Shared to dedicated creates an always-on StatefulSet with external access. Dedicated to shared converts to a serverless pod that scales to zero when idle. Data is preserved during migration.", "responses": { - "201": { - "description": "Transaction", + "200": { + "description": "DedicatedDatabase", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/dedicatedDatabase" } } }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", - "weight": 775, + "method": "createDatabaseMigration", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-operations.md", + "demo": "compute\/create-database-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "databases.write", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-operations.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "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" }, { @@ -10602,90 +10762,56 @@ "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" - } + "targetType": { + "type": "string", + "description": "Target database type to migrate to. Allowed values: shared (serverless, scales to zero when idle), dedicated (always-on with persistent resources).", + "x-example": "shared" } - } + }, + "required": [ + "targetType" + ] } } ] } }, - "\/databases\/usage": { + "\/compute\/databases\/{databaseId}\/pitr": { "get": { - "summary": "Get databases usage stats", - "operationId": "databasesListUsage", + "summary": "Get PITR recovery windows.", + "operationId": "computeGetDatabasePITRWindows", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "compute" ], - "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.", + "description": "Get available point-in-time recovery windows for a dedicated database. Returns the earliest and latest recovery points.", "responses": { "200": { - "description": "UsageDatabases", + "description": "PITRWindows", "schema": { - "$ref": "#\/definitions\/usageDatabases" + "$ref": "#\/definitions\/dedicatedDatabasePITRWindows" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listUsage", - "group": null, - "weight": 707, + "method": "getDatabasePITRWindows", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/list-usage.md", + "demo": "compute\/get-database-pitr-windows.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "databases.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-usage.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listUsage" - }, - "methods": [ - { - "name": "listUsage", - "namespace": "databases", - "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": "databases\/list-usage.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listUsage" - } - } - ], "auth": { "Project": [] } @@ -10697,108 +10823,59 @@ ], "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" } ] } }, - "\/databases\/{databaseId}": { + "\/compute\/databases\/{databaseId}\/pooler": { "get": { - "summary": "Get database", - "operationId": "databasesGet", + "summary": "Get connection pooler configuration.", + "operationId": "computeGetDatabasePooler", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Get the connection pooler configuration for a dedicated database. Returns pooler mode, max connections, and pool size settings.", "responses": { "200": { - "description": "Database", + "description": "PoolerConfig", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/dedicatedDatabasePooler" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "get", + "method": "getDatabasePooler", "group": "databases", - "weight": 701, "cookies": false, "type": "", - "demo": "databases\/get.md", + "demo": "compute\/get-database-pooler.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.get" - }, - "methods": [ - { - "name": "get", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/database" - } - ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", - "demo": "databases\/get.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.get" - } - } - ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -10812,9 +10889,9 @@ } ] }, - "put": { - "summary": "Update database", - "operationId": "databasesUpdate", + "patch": { + "summary": "Update connection pooler configuration.", + "operationId": "computeUpdateDatabasePooler", "consumes": [ "application\/json" ], @@ -10822,79 +10899,40 @@ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Update a database by its unique ID.", + "description": "Update the connection pooler configuration for a dedicated database. Configure pool mode, max connections, and pool sizes.", "responses": { "200": { - "description": "Database", + "description": "PoolerConfig", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/dedicatedDatabasePooler" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "update", + "method": "updateDatabasePooler", "group": "databases", - "weight": 702, "cookies": false, "type": "", - "demo": "databases\/update.md", + "demo": "compute\/update-database-pooler.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "databases.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.update" - }, - "methods": [ - { - "name": "update", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "name", - "enabled" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/database" - } - ], - "description": "Update a database by its unique ID.", - "demo": "databases\/update.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.update" - } - } - ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -10912,163 +10950,105 @@ "schema": { "type": "object", "properties": { - "name": { + "mode": { "type": "string", - "description": "Database name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "Connection pool mode. Allowed values: transaction, session. Transaction mode returns connections to the pool after each transaction; session mode holds connections for the entire session lifetime.", + "x-example": "transaction", + "x-nullable": true }, - "enabled": { + "maxConnections": { + "type": "integer", + "description": "Maximum pooled connections.", + "x-example": 10, + "format": "int32", + "x-nullable": true + }, + "defaultPoolSize": { + "type": "integer", + "description": "Default pool size per user.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "readWriteSplitting": { "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 - } - } - } - } - ] - }, - "delete": { - "summary": "Delete database", - "operationId": "databasesDelete", - "consumes": [ - "application\/json" - ], - "produces": [], - "tags": [ - "databases" - ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "method": "delete", - "group": "databases", - "weight": 703, - "cookies": false, - "type": "", - "demo": "databases\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.delete" - }, - "methods": [ - { - "name": "delete", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 204 + "description": "Route SELECTs to HA replicas, writes and locked reads to the primary. Defaults to true when HA is enabled.", + "x-example": false, + "x-nullable": true + }, + "poolerCpuRequest": { + "type": "string", + "description": "Pooler sidecar CPU request override (Kubernetes quantity, e.g. \"250m\" or \"1\"). Leave null for the proportional default (5% of DB CPU, floor 100m).", + "x-example": "<POOLER_CPU_REQUEST>", + "x-nullable": true + }, + "poolerCpuLimit": { + "type": "string", + "description": "Pooler sidecar CPU limit override (Kubernetes quantity, e.g. \"500m\" or \"1\"). Leave null for the proportional default (10% of DB CPU, floor 200m). Changing this field rolls the database pod.", + "x-example": "<POOLER_CPU_LIMIT>", + "x-nullable": true + }, + "poolerMemoryRequest": { + "type": "string", + "description": "Pooler sidecar memory request override (Kubernetes quantity, e.g. \"128Mi\" or \"1Gi\"). Leave null for the proportional default (7.5% of DB memory, floor 64Mi).", + "x-example": "<POOLER_MEMORY_REQUEST>", + "x-nullable": true + }, + "poolerMemoryLimit": { + "type": "string", + "description": "Pooler sidecar memory limit override (Kubernetes quantity, e.g. \"256Mi\" or \"1Gi\"). Leave null for the proportional default (15% of DB memory, floor 128Mi). Changing this field rolls the database pod.", + "x-example": "<POOLER_MEMORY_LIMIT>", + "x-nullable": true } - ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", - "demo": "databases\/delete.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.delete" } } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" } ] } }, - "\/databases\/{databaseId}\/collections": { + "\/compute\/databases\/{databaseId}\/restorations": { "get": { - "summary": "List collections", - "operationId": "databasesListCollections", + "summary": "List database restorations.", + "operationId": "computeListDatabaseRestorations", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "description": "List all restorations for a dedicated database. Results can be filtered by status and type.", "responses": { "200": { - "description": "Collections List", + "description": "Dedicated database restorations list", "schema": { - "$ref": "#\/definitions\/collectionList" + "$ref": "#\/definitions\/dedicatedDatabaseRestorationList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listCollections", - "group": "collections", - "weight": 712, + "method": "listDatabaseRestorations", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/list-collections.md", + "demo": "compute\/list-database-restorations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-collections.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listTables" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11081,40 +11061,46 @@ "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", + "name": "status", + "description": "Filter by restoration status.", "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], + "type": "string", + "x-example": "pending", "in": "query" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", + "name": "type", + "description": "Filter by restoration type.", "required": false, "type": "string", - "x-example": "<SEARCH>", - "default": "", + "x-example": "backup", "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "limit", + "description": "Maximum number of restorations to return.", "required": false, - "type": "boolean", - "x-example": false, - "default": true, + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 25, + "in": "query" + }, + { + "name": "offset", + "description": "Number of restorations to skip.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, "in": "query" } ] }, "post": { - "summary": "Create collections", - "operationId": "databasesCreateCollection", + "summary": "Create a database restoration.", + "operationId": "computeCreateDatabaseRestoration", "consumes": [ "application\/json" ], @@ -11122,48 +11108,40 @@ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "description": "Restore a database from a backup or to a specific point in time (PITR). For backup restoration, provide a backupId. For PITR, provide a targetTime. PITR requires the database to have PITR enabled and is only available for enterprise databases.", "responses": { - "201": { - "description": "Collection", + "202": { + "description": "Restoration", "schema": { - "$ref": "#\/definitions\/collection" + "$ref": "#\/definitions\/dedicatedDatabaseRestoration" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createCollection", - "group": "collections", - "weight": 708, + "method": "createDatabaseRestoration", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-collection.md", + "demo": "compute\/create-database-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-collection.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createTable" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11181,119 +11159,74 @@ "schema": { "type": "object", "properties": { - "collectionId": { + "type": { "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>" + "description": "Restoration type. Allowed values: backup, pitr. Use \"backup\" to restore from a specific backup, or \"pitr\" for point-in-time recovery.", + "default": "backup", + "x-example": "backup" }, - "name": { + "backupId": { "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), 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" - } + "description": "Backup ID to restore from (required for backup type).", + "x-example": "<BACKUP_ID>", + "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 attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "default": [], + "targetTime": { + "type": "integer", + "description": "Target time for PITR as Unix timestamp (required for pitr type).", "x-example": null, - "items": { - "type": "object" - } + "format": "int32", + "x-nullable": true } - }, - "required": [ - "collectionId", - "name" - ] + } } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}": { + "\/compute\/databases\/{databaseId}\/restorations\/{restorationId}": { "get": { - "summary": "Get collection", - "operationId": "databasesGetCollection", + "summary": "Get a database restoration.", + "operationId": "computeGetDatabaseRestoration", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "description": "Get details of a specific database restoration including its status, type, and timestamps.", "responses": { "200": { - "description": "Collection", + "description": "Restoration", "schema": { - "$ref": "#\/definitions\/collection" + "$ref": "#\/definitions\/dedicatedDatabaseRestoration" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getCollection", - "group": "collections", - "weight": 709, + "method": "getDatabaseRestoration", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/get-collection.md", + "demo": "compute\/get-database-restoration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getTable" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11306,67 +11239,59 @@ "in": "path" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "restorationId", + "description": "Restoration ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<RESTORATION_ID>", "in": "path" } ] - }, - "put": { - "summary": "Update collection", - "operationId": "databasesUpdateCollection", - "consumes": [ - "application\/json" - ], + } + }, + "\/compute\/databases\/{databaseId}\/schema": { + "get": { + "summary": "Get database schema.", + "operationId": "computeGetDatabaseSchema", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Update a collection by its unique ID.", + "description": "Get the current schema for a dedicated database. Returns collections, fields, data types, constraints, and indexes.", "responses": { "200": { - "description": "Collection", + "description": "Schema", "schema": { - "$ref": "#\/definitions\/collection" + "$ref": "#\/definitions\/dedicatedDatabaseSchema" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateCollection", - "group": "collections", - "weight": 710, + "method": "getDatabaseSchema", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/update-collection.md", + "demo": "compute\/get-database-schema.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-collection.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTable" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11377,13 +11302,64 @@ "type": "string", "x-example": "<DATABASE_ID>", "in": "path" - }, + } + ] + } + }, + "\/compute\/databases\/{databaseId}\/schema\/preview": { + "post": { + "summary": "Preview a schema change.", + "operationId": "computeCreateDatabaseSchemaPreview", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "compute" + ], + "description": "Preview a schema change against a dedicated database. Returns the expected impact including affected collections, records, and a dry-run diff of the schema before and after the change.", + "responses": { + "200": { + "description": "SchemaPreview", + "schema": { + "$ref": "#\/definitions\/dedicatedDatabaseSchemaPreview" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createDatabaseSchemaPreview", + "group": "databases", + "cookies": false, + "type": "", + "demo": "compute\/create-database-schema-preview.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "collectionId", - "description": "Collection ID.", + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { @@ -11392,92 +11368,63 @@ "schema": { "type": "object", "properties": { - "name": { + "sql": { "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\")\"]", - "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 - }, - "purge": { - "type": "boolean", - "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", - "default": false, - "x-example": false + "description": "Schema statement to preview.", + "x-example": "<SQL>" } - } + }, + "required": [ + "sql" + ] } } ] - }, - "delete": { - "summary": "Delete collection", - "operationId": "databasesDeleteCollection", - "consumes": [ + } + }, + "\/compute\/databases\/{databaseId}\/slow-queries": { + "get": { + "summary": "List slow queries.", + "operationId": "computeListDatabaseQueries", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "databases" + "compute" ], - "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "List slow queries for a dedicated database. Returns queries that exceeded the specified threshold.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Dedicated database slow queries list", + "schema": { + "$ref": "#\/definitions\/dedicatedDatabaseSlowQueryList" + } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteCollection", - "group": "collections", - "weight": 711, + "method": "listDatabaseQueries", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/delete-collection.md", + "demo": "compute\/list-database-queries.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-collection.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteTable" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11490,67 +11437,71 @@ "in": "path" }, { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" + "name": "limit", + "description": "Maximum number of queries to return.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 100, + "in": "query" + }, + { + "name": "thresholdMs", + "description": "Minimum query duration in milliseconds.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": { + "\/compute\/databases\/{databaseId}\/status": { "get": { - "summary": "List attributes", - "operationId": "databasesListAttributes", + "summary": "Get database status.", + "operationId": "computeGetDatabaseStatus", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "List attributes in the collection.", + "description": "Get real-time health and status information for a dedicated database. Returns health status, readiness, uptime, connection info, replica status, and volume information.", "responses": { "200": { - "description": "Attributes List", + "description": "Status", "schema": { - "$ref": "#\/definitions\/attributeList" + "$ref": "#\/definitions\/databaseStatus" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listAttributes", - "group": "attributes", - "weight": 729, + "method": "getDatabaseStatus", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/list-attributes.md", + "demo": "compute\/get-database-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-attributes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listColumns" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11561,43 +11512,14 @@ "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: 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" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint": { + "\/compute\/databases\/{databaseId}\/upgrades": { "post": { - "summary": "Create bigint attribute", - "operationId": "databasesCreateBigIntAttribute", + "summary": "Upgrade database version.", + "operationId": "computeCreateDatabaseUpgrade", "consumes": [ "application\/json" ], @@ -11605,48 +11527,40 @@ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Create a bigint attribute. Optionally, minimum and maximum values can be provided.\n", + "description": "Upgrade a dedicated database to a new engine version. Uses blue-green deployment for zero-downtime cutover.", "responses": { - "202": { - "description": "AttributeBigInt", + "200": { + "description": "DedicatedDatabase", "schema": { - "$ref": "#\/definitions\/attributeBigint" + "$ref": "#\/definitions\/dedicatedDatabase" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createBigIntAttribute", - "group": "attributes", - "weight": 742, + "method": "createDatabaseUpgrade", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-big-int-attribute.md", + "demo": "compute\/create-database-upgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-bigint-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createBigIntColumn" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11658,125 +11572,69 @@ "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": { - "key": { + "targetVersion": { "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute 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 attribute is required.", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "default": false, - "x-example": false + "description": "Target engine version to upgrade to.", + "x-example": "<TARGET_VERSION>" } }, "required": [ - "key", - "required" + "targetVersion" ] } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint\/{key}": { - "patch": { - "summary": "Update bigint attribute", - "operationId": "databasesUpdateBigIntAttribute", - "consumes": [ - "application\/json" - ], + "\/compute\/databases\/{databaseId}\/usage": { + "get": { + "summary": "Get database usage metrics.", + "operationId": "computeGetDatabaseUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "compute" ], - "description": "Update a bigint attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Get usage metrics for a dedicated database including CPU, memory, storage, connections, and query statistics.", "responses": { "200": { - "description": "AttributeBigInt", + "description": "DedicatedDatabase", "schema": { - "$ref": "#\/definitions\/attributeBigint" + "$ref": "#\/definitions\/dedicatedDatabaseUsage" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateBigIntAttribute", - "group": "attributes", - "weight": 743, + "method": "getDatabaseUsage", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/update-big-int-attribute.md", + "demo": "compute\/get-database-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-bigint-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateBigIntColumn" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -11789,888 +11647,433 @@ "in": "path" }, { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "type": "string", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is attribute 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 attribute is required.", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } + "x-example": "24h", + "default": "30d", + "in": "query" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": { + "\/console\/assistant": { "post": { - "summary": "Create boolean attribute", - "operationId": "databasesCreateBooleanAttribute", + "summary": "Create assistant query", + "operationId": "assistantChat", "consumes": [ "application\/json" ], "produces": [ - "application\/json" + "text\/plain" ], "tags": [ - "databases" + "assistant" ], - "description": "Create a boolean attribute.\n", + "description": "Send a prompt to the AI assistant and receive a response. This endpoint allows you to interact with Appwrite's AI assistant by sending questions or prompts and receiving helpful responses in real-time through a server-sent events stream. ", "responses": { - "202": { - "description": "AttributeBoolean", + "200": { + "description": "Text", "schema": { - "$ref": "#\/definitions\/attributeBoolean" + "type": "string" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createBooleanAttribute", - "group": "attributes", - "weight": 730, + "method": "chat", + "group": "console", "cookies": false, "type": "", - "demo": "databases\/create-boolean-attribute.md", - "rate-limit": 0, + "demo": "assistant\/chat.md", + "rate-limit": 15, "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "rate-key": "userId:{userId}", + "scope": "assistant.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-boolean-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createBooleanColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/assistant\/chat.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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": { "type": "object", "properties": { - "key": { + "prompt": { "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false - }, - "default": { - "type": "boolean", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "default": false, - "x-example": false + "description": "Prompt. A string containing questions asked to the AI assistant.", + "x-example": "<PROMPT>" } }, "required": [ - "key", - "required" + "prompt" ] } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": { - "patch": { - "summary": "Update boolean attribute", - "operationId": "databasesUpdateBooleanAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/campaigns\/{campaignId}": { + "get": { + "summary": "Get campaign details", + "operationId": "consoleGetCampaign", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.", + "description": "Receive the details of a campaign using its ID.", "responses": { - "200": { - "description": "AttributeBoolean", + "201": { + "description": "Campaign", "schema": { - "$ref": "#\/definitions\/attributeBoolean" + "$ref": "#\/definitions\/campaign" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateBooleanAttribute", - "group": "attributes", - "weight": 731, + "method": "getCampaign", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-boolean-attribute.md", + "demo": "console\/get-campaign.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-boolean-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateBooleanColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-campaign.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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#createCollection).", - "required": true, - "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", + "name": "campaignId", + "description": "ID of the campaign", "required": true, "type": "string", + "x-example": "<CAMPAIGN_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false - }, - "default": { - "type": "boolean", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "default": null, - "x-example": false, - "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\/datetime": { - "post": { - "summary": "Create datetime attribute", - "operationId": "databasesCreateDatetimeAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/coupons\/{couponId}": { + "get": { + "summary": "Get coupon details", + "operationId": "consoleGetCoupon", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Create a date time attribute according to the ISO 8601 standard.", + "description": "Get the details of a coupon using it's coupon ID.", "responses": { - "202": { - "description": "AttributeDatetime", + "201": { + "description": "Coupon", "schema": { - "$ref": "#\/definitions\/attributeDatetime" + "$ref": "#\/definitions\/coupon" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createDatetimeAttribute", - "group": "attributes", - "weight": 732, + "method": "getCoupon", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-datetime-attribute.md", - "rate-limit": 0, + "demo": "console\/get-coupon.md", + "rate-limit": 50, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-datetime-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createDatetimeColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-coupon.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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#createCollection).", + "name": "couponId", + "description": "ID of the coupon", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<COUPON_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", - "default": null, - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": { - "patch": { - "summary": "Update datetime attribute", - "operationId": "databasesUpdateDatetimeAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/oauth2-providers": { + "get": { + "summary": "List OAuth2 providers", + "operationId": "consoleListOAuth2Providers", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.", + "description": "List all OAuth2 providers supported by the Appwrite server, along with the parameters required to configure each provider. The response excludes mock providers but includes sandbox providers.", "responses": { "200": { - "description": "AttributeDatetime", + "description": "Console OAuth2 Providers List", "schema": { - "$ref": "#\/definitions\/attributeDatetime" + "$ref": "#\/definitions\/consoleOAuth2ProviderList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateDatetimeAttribute", - "group": "attributes", - "weight": 733, + "method": "listOAuth2Providers", + "group": "console", "cookies": false, "type": "", - "demo": "databases\/update-datetime-attribute.md", + "demo": "console\/list-o-auth-2-providers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-datetime-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateDatetimeColumn" - }, "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": { - "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New attribute key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } + "Project": [] } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": { - "post": { - "summary": "Create email attribute", - "operationId": "databasesCreateEmailAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/plans": { + "get": { + "summary": "Get plans", + "operationId": "consoleGetPlans", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Create an email attribute.\n", + "description": "Return a list of all available plans.", "responses": { - "202": { - "description": "AttributeEmail", + "200": { + "description": "Billing plan list", "schema": { - "$ref": "#\/definitions\/attributeEmail" + "$ref": "#\/definitions\/billingPlanList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createEmailAttribute", - "group": "attributes", - "weight": 734, + "method": "getPlans", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-email-attribute.md", + "demo": "console\/get-plans.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-email-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createEmailColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-plans.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, + "name": "platform", + "description": "Platform type", + "required": false, "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 - }, - "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": "email@example.com", - "format": "email", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": "Platform", + "default": "appwrite", + "in": "query" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": { - "patch": { - "summary": "Update email attribute", - "operationId": "databasesUpdateEmailAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/plans\/{planId}": { + "get": { + "summary": "Get plan", + "operationId": "consoleGetPlan", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Get the details of a plan using its plan ID.", "responses": { "200": { - "description": "AttributeEmail", + "description": "billingPlan", "schema": { - "$ref": "#\/definitions\/attributeEmail" + "$ref": "#\/definitions\/billingPlan" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateEmailAttribute", - "group": "attributes", - "weight": 735, + "method": "getPlan", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-email-attribute.md", + "demo": "console\/get-plan.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-email-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateEmailColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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.", + "name": "planId", + "description": "Plan id", "required": true, "type": "string", + "x-example": "<PLAN_ID>", "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": "email@example.com", - "format": "email", - "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\/enum": { - "post": { - "summary": "Create enum attribute", - "operationId": "databasesCreateEnumAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/programs\/{programId}": { + "get": { + "summary": "Get program details", + "operationId": "consoleGetProgram", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n", + "description": "Receive the details of a program using its ID.", "responses": { - "202": { - "description": "AttributeEnum", + "201": { + "description": "Program", "schema": { - "$ref": "#\/definitions\/attributeEnum" + "$ref": "#\/definitions\/program" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createEnumAttribute", - "group": "attributes", - "weight": 736, + "method": "getProgram", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-enum-attribute.md", + "demo": "console\/get-program.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-enum-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createEnumColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/get-program.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", + "name": "programId", + "description": "ID of the program", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<PROGRAM_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute 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 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 - } - }, - "required": [ - "key", - "elements", - "required" - ] - } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": { - "patch": { - "summary": "Update enum attribute", - "operationId": "databasesUpdateEnumAttribute", + "\/console\/programs\/{programId}\/memberships": { + "post": { + "summary": "Create program membership", + "operationId": "consoleCreateProgramMembership", "consumes": [ "application\/json" ], @@ -12678,386 +12081,265 @@ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Create a new membership for an account to a program.", "responses": { "200": { - "description": "AttributeEnum", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/attributeEnum" + "$ref": "#\/definitions\/organization" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateEnumAttribute", - "group": "attributes", - "weight": 737, + "method": "createProgramMembership", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-enum-attribute.md", - "rate-limit": 0, + "demo": "console\/create-program-membership.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "teams.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-enum-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateEnumColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/create-program-membership.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", + "name": "programId", + "description": "ID of the program", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<PROGRAM_ID>", "in": "path" - }, - { - "name": "key", - "description": "Attribute 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 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 - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "elements", - "required", - "default" - ] - } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": { - "post": { - "summary": "Create float attribute", - "operationId": "databasesCreateFloatAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/regions": { + "get": { + "summary": "List Regions", + "operationId": "consoleListRegions", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n", + "description": "Get all available regions for the console.", "responses": { - "202": { - "description": "AttributeFloat", + "200": { + "description": "Regions list", "schema": { - "$ref": "#\/definitions\/attributeFloat" + "$ref": "#\/definitions\/consoleRegionList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createFloatAttribute", - "group": "attributes", - "weight": 738, + "method": "listRegions", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-float-attribute.md", + "demo": "console\/list-regions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-float-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createFloatColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/list-regions.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ] + } + }, + "\/console\/resources": { + "get": { + "summary": "Check resource ID availability", + "operationId": "consoleGetResource", + "consumes": [], + "produces": [], + "tags": [ + "console" + ], + "description": "Check if a resource ID is available.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getResource", + "group": null, + "cookies": false, + "type": "", + "demo": "console\/get-resource.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "value", + "description": "Resource value.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" + "x-example": "<VALUE>", + "in": "query" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "type", + "description": "Resource type.", "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 - }, - "required": { - "type": "boolean", - "description": "Is attribute 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 attribute an array?", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } + "x-example": "rules", + "enum": [ + "rules" + ], + "x-enum-name": "ConsoleResourceType", + "in": "query" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": { - "patch": { - "summary": "Update float attribute", - "operationId": "databasesUpdateFloatAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/scopes\/organization": { + "get": { + "summary": "List organization scopes", + "operationId": "consoleListOrganizationScopes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n", + "description": "List all scopes available for organization API keys, along with a description for each scope.", "responses": { "200": { - "description": "AttributeFloat", + "description": "Console Key Scopes List", "schema": { - "$ref": "#\/definitions\/attributeFloat" + "$ref": "#\/definitions\/consoleKeyScopeList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateFloatAttribute", - "group": "attributes", - "weight": 739, + "method": "listOrganizationScopes", + "group": "console", "cookies": false, "type": "", - "demo": "databases\/update-float-attribute.md", + "demo": "console\/list-organization-scopes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-float-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateFloatColumn" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } + ] + } + }, + "\/console\/scopes\/project": { + "get": { + "summary": "List project scopes", + "operationId": "consoleListProjectScopes", + "consumes": [], + "produces": [ + "application\/json" ], - "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", + "tags": [ + "console" + ], + "description": "List all scopes available for project API keys, along with a description for each scope.", + "responses": { + "200": { + "description": "Console Key Scopes List", "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is attribute 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 Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] + "$ref": "#\/definitions\/consoleKeyScopeList" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "listProjectScopes", + "group": "console", + "cookies": false, + "type": "", + "demo": "console\/list-project-scopes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": { + "\/console\/sources": { "post": { - "summary": "Create integer attribute", - "operationId": "databasesCreateIntegerAttribute", + "summary": "Create source", + "operationId": "consoleCreateSource", "consumes": [ "application\/json" ], @@ -13065,178 +12347,131 @@ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n", + "description": "Create a new source.", "responses": { - "202": { - "description": "AttributeInteger", + "201": { + "description": "Any", "schema": { - "$ref": "#\/definitions\/attributeInteger" + "$ref": "#\/definitions\/any" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createIntegerAttribute", - "group": "attributes", - "weight": 740, + "method": "createSource", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-integer-attribute.md", - "rate-limit": 0, + "demo": "console\/create-source.md", + "rate-limit": 50, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-integer-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createIntegerColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/create-source.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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": { - "key": { + "ref": { "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false + "description": "Ref param", + "x-example": "<REF>", + "x-nullable": true }, - "min": { - "type": "integer", - "description": "Minimum value", - "default": null, - "x-example": null, - "format": "int64", + "referrer": { + "type": "string", + "description": "Referrer", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, - "max": { - "type": "integer", - "description": "Maximum value", - "default": null, - "x-example": null, - "format": "int64", + "utmSource": { + "type": "string", + "description": "Utm source", + "x-example": "<UTM_SOURCE>", "x-nullable": true }, - "default": { - "type": "integer", - "description": "Default value. Cannot be set when attribute is required.", - "default": null, - "x-example": null, - "format": "int64", + "utmCampaign": { + "type": "string", + "description": "Utm campaign", + "x-example": "<UTM_CAMPAIGN>", "x-nullable": true }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "default": false, - "x-example": false + "utmMedium": { + "type": "string", + "description": "Utm medium", + "x-example": "<UTM_MEDIUM>", + "x-nullable": true } - }, - "required": [ - "key", - "required" - ] + } } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": { - "patch": { - "summary": "Update integer attribute", - "operationId": "databasesUpdateIntegerAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/suggestions\/columns": { + "get": { + "summary": "Get column suggestions with size limits for a table, using database context and an optional user provided context", + "operationId": "consoleSuggestColumns", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Suggests column names and their size limits based on the provided table name. The API will also analyze other tables in the same database to provide context-aware suggestions, ensuring consistency across schema design. Users may optionally provide custom context to further refine the suggestions.", "responses": { "200": { - "description": "AttributeInteger", + "description": "Columns List", "schema": { - "$ref": "#\/definitions\/attributeInteger" + "$ref": "#\/definitions\/columnList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateIntegerAttribute", - "group": "attributes", - "weight": 741, + "method": "suggestColumns", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-integer-attribute.md", - "rate-limit": 0, + "demo": "console\/suggest-columns.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-integer-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateIntegerColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-columns.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -13246,129 +12481,91 @@ "required": true, "type": "string", "x-example": "<DATABASE_ID>", - "in": "path" + "in": "query" }, { - "name": "collectionId", - "description": "Collection ID.", - "required": true, + "name": "tableId", + "description": "Table ID.", + "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" + "x-example": "<TABLE_ID>", + "in": "query" }, { - "name": "key", - "description": "Attribute Key.", - "required": true, + "name": "context", + "description": "Optional user provided context to refine suggestions.", + "required": false, "type": "string", - "in": "path" + "x-example": "<CONTEXT>", + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is attribute 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 attribute is required.", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } + "name": "min", + "description": "Minimum number of suggestions to generate.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 3, + "in": "query" + }, + { + "name": "max", + "description": "Maximum number of suggestions to generate.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 7, + "in": "query" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip": { - "post": { - "summary": "Create IP address attribute", - "operationId": "databasesCreateIpAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/suggestions\/indexes": { + "get": { + "summary": "Get index suggestions for table columns, using database context", + "operationId": "consoleSuggestIndexes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Create IP address attribute.\n", + "description": "Suggests database indexes for table columns based on the provided table structure and existing columns. The API will also analyze the table's column types, names, and patterns to recommend optimal indexes that improve query performance for common database operations like filtering, sorting, and searching.", "responses": { - "202": { - "description": "AttributeIP", + "200": { + "description": "Column Indexes List", "schema": { - "$ref": "#\/definitions\/attributeIp" + "$ref": "#\/definitions\/columnIndexList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createIpAttribute", - "group": "attributes", - "weight": 744, + "method": "suggestIndexes", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-ip-attribute.md", - "rate-limit": 0, + "demo": "console\/suggest-indexes.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-ip-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createIpColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-indexes.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -13378,324 +12575,615 @@ "required": true, "type": "string", "x-example": "<DATABASE_ID>", - "in": "path" + "in": "query" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" + "x-example": "<TABLE_ID>", + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value. Cannot be set when attribute is required.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } + "name": "min", + "description": "Minimum number of suggestions to generate.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 1, + "in": "query" + }, + { + "name": "max", + "description": "Maximum number of suggestions to generate.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 4, + "in": "query" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip\/{key}": { - "patch": { - "summary": "Update IP address attribute", - "operationId": "databasesUpdateIpAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/suggestions\/queries": { + "get": { + "summary": "Get query suggestions for a list resource from free-text intent", + "operationId": "consoleSuggestQueries", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Update an ip attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Suggest valid Appwrite query JSON objects for a supported list resource from free-text user intent. The endpoint picks a validator based on `resource` \u2014 for system resources it uses the static validator and its allowed attributes, and for user-owned table rows it loads the table schema and validates against those attributes at request time. The returned queries are guaranteed to parse and pass the relevant queries validator.\n", "responses": { "200": { - "description": "AttributeIP", + "description": "Any", "schema": { - "$ref": "#\/definitions\/attributeIp" + "$ref": "#\/definitions\/any" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateIpAttribute", - "group": "attributes", - "weight": 745, + "method": "suggestQueries", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-ip-attribute.md", - "rate-limit": 0, + "demo": "console\/suggest-queries.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-ip-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateIpColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/console\/suggest-queries.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "resource", + "description": "Resource to generate queries for.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" + "x-example": "activities", + "enum": [ + "activities", + "activityevents", + "archives", + "credits", + "dnsrecords", + "domains", + "invoices", + "paymentmethods", + "policies", + "projects", + "restorations", + "teamaggregations", + "teams", + "databases", + "tables", + "rows", + "schedules", + "platforms", + "keys", + "devkeys", + "webhooks", + "certificates", + "realtime", + "rules", + "installations", + "repositories", + "vcscomments", + "vcscommentlocks", + "reports", + "insights", + "users", + "cache", + "tokens", + "authenticators", + "challenges", + "sessions", + "identities", + "memberships", + "buckets", + "providers", + "messages", + "topics", + "subscribers", + "targets", + "companies", + "billingaddresses", + "billingaggregations", + "billingaggregationresources", + "billingteamprojectaggregations", + "billingteamaggregations_v2", + "billingteamaggregationresources", + "billinginvoices_v2", + "billingaddons", + "alerts", + "payments", + "billingdiscounts", + "sources", + "deals", + "blocks", + "threats", + "feedbacks", + "sh_installations", + "attributes", + "indexes", + "functions", + "sites", + "deployments", + "executions", + "variables", + "migrations", + "resourcetokens", + "transactions", + "transactionlogs", + "presencelogs", + "stats", + "dedicateddatabases", + "dedicateddatabaseconfigs", + "dedicateddatabaseruntimes", + "dedicateddatabaseoperations", + "dedicateddatabasebackups", + "dedicateddatabaserestorations" + ], + "x-enum-name": "QuerySuggestionResource", + "x-enum-keys": [ + "activities", + "activity_events", + "archives", + "credits", + "dns_records", + "domains", + "invoices", + "payment_methods", + "policies", + "projects", + "restorations", + "team_aggregations", + "teams", + "databases", + "tables", + "rows", + "schedules", + "platforms", + "keys", + "dev_keys", + "webhooks", + "certificates", + "realtime", + "rules", + "installations", + "repositories", + "vcs_comments", + "vcs_comment_locks", + "reports", + "insights", + "users", + "cache", + "tokens", + "authenticators", + "challenges", + "sessions", + "identities", + "memberships", + "buckets", + "providers", + "messages", + "topics", + "subscribers", + "targets", + "companies", + "billing_addresses", + "billing_aggregations", + "billing_aggregation_resources", + "billing_team_project_aggregations", + "billing_team_aggregations_v2", + "billing_team_aggregation_resources", + "billing_invoices_v2", + "billing_addons", + "alerts", + "payments", + "billing_discounts", + "sources", + "deals", + "blocks", + "threats", + "feedbacks", + "sh_installations", + "attributes", + "indexes", + "functions", + "sites", + "deployments", + "executions", + "variables", + "migrations", + "resource_tokens", + "transactions", + "transaction_logs", + "presence_logs", + "stats", + "dedicated_databases", + "dedicated_database_configs", + "dedicated_database_runtimes", + "dedicated_database_operations", + "dedicated_database_backups", + "dedicated_database_restorations" + ], + "in": "query" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "input", + "description": "Natural language query intent used to generate filters\/sorting\/pagination.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" + "x-example": "<INPUT>", + "in": "query" }, { - "name": "key", - "description": "Attribute Key.", - "required": true, + "name": "databaseId", + "description": "Database ID. Required when resource is `tables` or `rows`.", + "required": false, "type": "string", - "in": "path" + "x-example": "<DATABASE_ID>", + "in": "query" }, { - "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. Cannot be set when attribute is required.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } + "name": "tableId", + "description": "Table ID. Required when resource is `rows`.", + "required": false, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "query" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line": { - "post": { - "summary": "Create line attribute", - "operationId": "databasesCreateLineAttribute", - "consumes": [ - "application\/json" - ], + "\/console\/templates\/email\/{templateId}": { + "get": { + "summary": "Get email template", + "operationId": "consoleGetEmailTemplate", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "databases" + "console" ], - "description": "Create a geometric line attribute.", + "description": "Get the Appwrite built-in default email template for the specified type and locale. Always returns the unmodified default, ignoring any custom project overrides.", "responses": { - "202": { - "description": "AttributeLine", + "200": { + "description": "EmailTemplate", "schema": { - "$ref": "#\/definitions\/attributeLine" + "$ref": "#\/definitions\/emailTemplate" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createLineAttribute", - "group": "attributes", - "weight": 746, + "method": "getEmailTemplate", + "group": null, "cookies": false, "type": "", - "demo": "databases\/create-line-attribute.md", + "demo": "console\/get-email-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-line-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createLineColumn" - }, "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "templateId", + "description": "Email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "ProjectEmailTemplateId", "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, + "name": "locale", + "description": "Template locale. If left empty, the fallback locale (en) will be used.", + "required": false, "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 - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", - "default": null, - "x-example": "[[1, 2], [3, 4], [5, 6]]", - "x-nullable": true - } - }, - "required": [ - "key", - "required" - ] - } + "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": "ProjectEmailTemplateLocale", + "in": "query" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line\/{key}": { - "patch": { - "summary": "Update line attribute", - "operationId": "databasesUpdateLineAttribute", - "consumes": [ + "\/console\/variables": { + "get": { + "summary": "Get variables", + "operationId": "consoleVariables", + "consumes": [], + "produces": [ "application\/json" ], + "tags": [ + "console" + ], + "description": "Get all Environment Variables that are relevant for the console.", + "responses": { + "200": { + "description": "Console Variables", + "schema": { + "$ref": "#\/definitions\/consoleVariables" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "variables", + "group": "console", + "cookies": false, + "type": "", + "demo": "console\/variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ] + } + }, + "\/databases": { + "get": { + "summary": "List databases", + "operationId": "databasesList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Update a line attribute. Changing the `default` value will not update already existing documents.", + "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": "AttributeLine", + "description": "Databases List", "schema": { - "$ref": "#\/definitions\/attributeLine" + "$ref": "#\/definitions\/databaseList" } } }, "deprecated": true, "x-appwrite": { - "method": "updateLineAttribute", - "group": "attributes", - "weight": 747, + "method": "list", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/update-line-attribute.md", + "demo": "databases\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-line-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateLineColumn" + "replaceWith": "tablesDB.list" }, + "methods": [ + { + "name": "list", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "queries", + "search", + "total" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/databaseList" + } + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "demo": "databases\/list.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.list" + } + } + ], "auth": { "Project": [] } @@ -13708,67 +13196,40 @@ ], "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#createCollection).", - "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: name", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "key", - "description": "Attribute 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 attribute required?", - "default": null, - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", - "default": null, - "x-example": "[[1, 2], [3, 4], [5, 6]]", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New attribute 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" } ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext": { + }, "post": { - "summary": "Create longtext attribute", - "operationId": "databasesCreateLongtextAttribute", + "summary": "Create database", + "operationId": "databasesCreate", "consumes": [ "application\/json" ], @@ -13778,34 +13239,69 @@ "tags": [ "databases" ], - "description": "Create a longtext attribute.\n", + "description": "Create a new Database.\n", "responses": { - "202": { - "description": "AttributeLongtext", + "201": { + "description": "Database", "schema": { - "$ref": "#\/definitions\/attributeLongtext" + "$ref": "#\/definitions\/database" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createLongtextAttribute", - "group": "attributes", - "weight": 764, + "method": "create", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-longtext-attribute.md", + "demo": "databases\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-longtext-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + }, + "methods": [ + { + "name": "create", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/database" + } + ], + "description": "Create a new Database.\n", + "demo": "databases\/create.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.create" + } + } + ], "auth": { "Project": [] } @@ -13817,110 +13313,77 @@ } ], "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": { "type": "object", "properties": { - "key": { + "databaseId": { "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false + "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>" }, - "default": { + "name": { "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 + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "encrypt": { + "enabled": { "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, + "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": [ - "key", - "required" + "databaseId", + "name" ] } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext\/{key}": { - "patch": { - "summary": "Update longtext attribute", - "operationId": "databasesUpdateLongtextAttribute", - "consumes": [ - "application\/json" - ], + "\/databases\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "databasesListTransactions", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Update a longtext attribute. Changing the `default` value will not update already existing documents.\n", + "description": "List transactions across all databases.", "responses": { "200": { - "description": "AttributeLongtext", + "description": "Transaction List", "schema": { - "$ref": "#\/definitions\/attributeLongtext" + "$ref": "#\/definitions\/transactionList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateLongtextAttribute", - "group": "attributes", - "weight": 765, + "method": "listTransactions", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/update-longtext-attribute.md", + "demo": "databases\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "rows.read", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-longtext-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-transactions.md", "auth": { "Project": [] } @@ -13928,73 +13391,29 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "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).", - "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 - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } + "name": "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" } ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext": { + }, "post": { - "summary": "Create mediumtext attribute", - "operationId": "databasesCreateMediumtextAttribute", + "summary": "Create transaction", + "operationId": "databasesCreateTransaction", "consumes": [ "application\/json" ], @@ -14004,34 +13423,34 @@ "tags": [ "databases" ], - "description": "Create a mediumtext attribute.\n", + "description": "Create a new transaction.", "responses": { - "202": { - "description": "AttributeMediumtext", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/attributeMediumtext" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "createMediumtextAttribute", - "group": "attributes", - "weight": 762, + "method": "createTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/create-mediumtext-attribute.md", + "demo": "databases\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-mediumtext-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-transaction.md", "auth": { "Project": [] } @@ -14039,114 +13458,70 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "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).", - "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 - }, - "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 + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" } - }, - "required": [ - "key", - "required" - ] + } } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext attribute", - "operationId": "databasesUpdateMediumtextAttribute", - "consumes": [ - "application\/json" - ], + "\/databases\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "databasesGetTransaction", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Update a mediumtext attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Get a transaction by its unique ID.", "responses": { "200": { - "description": "AttributeMediumtext", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/attributeMediumtext" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMediumtextAttribute", - "group": "attributes", - "weight": 763, + "method": "getTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/update-mediumtext-attribute.md", + "demo": "databases\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "rows.read", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-mediumtext-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-transaction.md", "auth": { "Project": [] } @@ -14154,73 +13529,25 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "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).", - "required": true, - "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", + "x-example": "<TRANSACTION_ID>", "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 - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } } ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point": { - "post": { - "summary": "Create point attribute", - "operationId": "databasesCreatePointAttribute", + }, + "patch": { + "summary": "Update transaction", + "operationId": "databasesUpdateTransaction", "consumes": [ "application\/json" ], @@ -14230,38 +13557,34 @@ "tags": [ "databases" ], - "description": "Create a geometric point attribute.", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { - "202": { - "description": "AttributePoint", + "200": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/attributePoint" + "$ref": "#\/definitions\/transaction" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createPointAttribute", - "group": "attributes", - "weight": 748, + "method": "updateTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/create-point-attribute.md", + "demo": "databases\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-point-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createPointColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-transaction.md", "auth": { "Project": [] } @@ -14269,24 +13592,18 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "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).", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -14295,80 +13612,58 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null - }, - "required": { + "commit": { "type": "boolean", - "description": "Is attribute required?", - "default": null, + "description": "Commit transaction?", + "default": false, "x-example": false }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", - "default": null, - "x-example": "[1, 2]", - "x-nullable": true + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point\/{key}": { - "patch": { - "summary": "Update point attribute", - "operationId": "databasesUpdatePointAttribute", + }, + "delete": { + "summary": "Delete transaction", + "operationId": "databasesDeleteTransaction", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "databases" ], - "description": "Update a point attribute. Changing the `default` value will not update already existing documents.", + "description": "Delete a transaction by its unique ID.", "responses": { - "200": { - "description": "AttributePoint", - "schema": { - "$ref": "#\/definitions\/attributePoint" - } + "204": { + "description": "No content" } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updatePointAttribute", - "group": "attributes", - "weight": 749, + "method": "deleteTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/update-point-attribute.md", + "demo": "databases\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-point-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updatePointColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-transaction.md", "auth": { "Project": [] } @@ -14376,72 +13671,27 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "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#createCollection).", - "required": true, - "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", + "x-example": "<TRANSACTION_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", - "default": null, - "x-example": "[1, 2]", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New attribute key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required" - ] - } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon": { + "\/databases\/transactions\/{transactionId}\/operations": { "post": { - "summary": "Create polygon attribute", - "operationId": "databasesCreatePolygonAttribute", + "summary": "Create operations", + "operationId": "databasesCreateOperations", "consumes": [ "application\/json" ], @@ -14451,38 +13701,34 @@ "tags": [ "databases" ], - "description": "Create a geometric polygon attribute.", + "description": "Create multiple operations in a single transaction.", "responses": { - "202": { - "description": "AttributePolygon", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/attributePolygon" + "$ref": "#\/definitions\/transaction" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createPolygonAttribute", - "group": "attributes", - "weight": 750, + "method": "createOperations", + "group": "transactions", "cookies": false, "type": "", - "demo": "databases\/create-polygon-attribute.md", + "demo": "databases\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-polygon-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createPolygonColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-operations.md", "auth": { "Project": [] } @@ -14490,24 +13736,18 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "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).", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -14516,194 +13756,193 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false - }, - "default": { + "operations": { "type": "array", - "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", - "default": null, - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", - "x-nullable": true + "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": [ - "key", - "required" - ] + } } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon\/{key}": { - "patch": { - "summary": "Update polygon attribute", - "operationId": "databasesUpdatePolygonAttribute", - "consumes": [ - "application\/json" - ], + "\/databases\/usage": { + "get": { + "summary": "Get databases usage stats", + "operationId": "databasesListUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Update a polygon attribute. Changing the `default` value will not update already existing documents.", + "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": "AttributePolygon", + "description": "UsageDatabases", "schema": { - "$ref": "#\/definitions\/attributePolygon" + "$ref": "#\/definitions\/usageDatabases" } } }, "deprecated": true, "x-appwrite": { - "method": "updatePolygonAttribute", - "group": "attributes", - "weight": 751, + "method": "listUsage", + "group": null, "cookies": false, "type": "", - "demo": "databases\/update-polygon-attribute.md", + "demo": "databases\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "collections.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-polygon-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-usage.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updatePolygonColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" + "replaceWith": "tablesDB.listUsage" }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", - "required": true, - "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": "array", - "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", - "default": null, - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New attribute key.", - "default": null, - "x-example": null, - "x-nullable": true - } + "methods": [ + { + "name": "listUsage", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] }, - "required": [ - "required" - ] + "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": "databases\/list-usage.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listUsage" + } } + ], + "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" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship": { - "post": { - "summary": "Create relationship attribute", - "operationId": "databasesCreateRelationshipAttribute", - "consumes": [ - "application\/json" - ], + "\/databases\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "databasesGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Create relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { - "202": { - "description": "AttributeRelationship", + "200": { + "description": "Database", "schema": { - "$ref": "#\/definitions\/attributeRelationship" + "$ref": "#\/definitions\/database" } } }, "deprecated": true, "x-appwrite": { - "method": "createRelationshipAttribute", - "group": "attributes", - "weight": 752, + "method": "get", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-relationship-attribute.md", + "demo": "databases\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-relationship-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.createRelationshipColumn" + "replaceWith": "tablesDB.get" }, + "methods": [ + { + "name": "get", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/database" + } + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "demo": "databases\/get.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.get" + } + } + ], "auth": { "Project": [] } @@ -14722,88 +13961,12 @@ "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": { - "relatedCollectionId": { - "type": "string", - "description": "Related Collection ID.", - "default": null, - "x-example": "<RELATED_COLLECTION_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": "Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "twoWayKey": { - "type": "string", - "description": "Two Way Attribute 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": [ - "relatedCollectionId", - "type" - ] - } } ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { - "patch": { - "summary": "Update relationship attribute", - "operationId": "databasesUpdateRelationshipAttribute", + }, + "put": { + "summary": "Update database", + "operationId": "databasesUpdate", "consumes": [ "application\/json" ], @@ -14813,38 +13976,68 @@ "tags": [ "databases" ], - "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "description": "Update a database by its unique ID.", "responses": { "200": { - "description": "AttributeRelationship", + "description": "Database", "schema": { - "$ref": "#\/definitions\/attributeRelationship" + "$ref": "#\/definitions\/database" } } }, "deprecated": true, "x-appwrite": { - "method": "updateRelationshipAttribute", - "group": "attributes", - "weight": 753, + "method": "update", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/update-relationship-attribute.md", + "demo": "databases\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "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\/update.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateRelationshipColumn" + "replaceWith": "tablesDB.update" }, + "methods": [ + { + "name": "update", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "name", + "enabled" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/database" + } + ], + "description": "Update a database by its unique ID.", + "demo": "databases\/update.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.update" + } + } + ], "auth": { "Project": [] } @@ -14864,98 +14057,94 @@ "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": { + "name": { "type": "string", - "description": "Constraints option", - "default": null, - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [] + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true + "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 } } } } ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { - "post": { - "summary": "Create string attribute", - "operationId": "databasesCreateStringAttribute", + }, + "delete": { + "summary": "Delete database", + "operationId": "databasesDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "databases" ], - "description": "Create a string attribute.\n", + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "responses": { - "202": { - "description": "AttributeString", - "schema": { - "$ref": "#\/definitions\/attributeString" - } + "204": { + "description": "No content" } }, "deprecated": true, "x-appwrite": { - "method": "createStringAttribute", - "group": "attributes", - "weight": 754, + "method": "delete", + "group": "databases", "cookies": false, "type": "", - "demo": "databases\/create-string-attribute.md", + "demo": "databases\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-string-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.createStringColumn" + "replaceWith": "tablesDB.delete" }, + "methods": [ + { + "name": "delete", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "demo": "databases\/delete.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.delete" + } + } + ], "auth": { "Project": [] } @@ -14974,114 +14163,51 @@ "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" - ], + "\/databases\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "databasesListCollections", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", "responses": { "200": { - "description": "AttributeString", + "description": "Collections List", "schema": { - "$ref": "#\/definitions\/attributeString" + "$ref": "#\/definitions\/collectionList" } } }, "deprecated": true, "x-appwrite": { - "method": "updateStringAttribute", - "group": "attributes", - "weight": 755, + "method": "listCollections", + "group": "collections", "cookies": false, "type": "", - "demo": "databases\/update-string-attribute.md", + "demo": "databases\/list-collections.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\/update-string-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-collections.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateStringColumn" + "replaceWith": "tablesDB.listTables" }, "auth": { "Project": [] @@ -15103,68 +14229,40 @@ "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": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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": "key", - "description": "Attribute 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 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" - ] - } + "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" } ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + }, "post": { - "summary": "Create text attribute", - "operationId": "databasesCreateTextAttribute", + "summary": "Create collections", + "operationId": "databasesCreateCollection", "consumes": [ "application\/json" ], @@ -15174,23 +14272,22 @@ "tags": [ "databases" ], - "description": "Create a text attribute.\n", + "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { - "202": { - "description": "AttributeText", + "201": { + "description": "Collection", "schema": { - "$ref": "#\/definitions\/attributeText" + "$ref": "#\/definitions\/collection" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createTextAttribute", - "group": "attributes", - "weight": 760, + "method": "createCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "databases\/create-text-attribute.md", + "demo": "databases\/create-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -15201,7 +14298,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-collection.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createTable" + }, "auth": { "Project": [] } @@ -15221,102 +14322,113 @@ "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": { - "key": { + "collectionId": { "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false + "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>" }, - "default": { + "name": { "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 + "description": "Collection name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "array": { + "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\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "documentSecurity": { "type": "boolean", - "description": "Is attribute an array?", + "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 }, - "encrypt": { + "enabled": { "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, + "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), 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": [ - "key", - "required" + "collectionId", + "name" ] } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { - "patch": { - "summary": "Update text attribute", - "operationId": "databasesUpdateTextAttribute", - "consumes": [ - "application\/json" - ], + "\/databases\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "databasesGetCollection", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", "responses": { "200": { - "description": "AttributeText", + "description": "Collection", "schema": { - "$ref": "#\/definitions\/attributeText" + "$ref": "#\/definitions\/collection" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateTextAttribute", - "group": "attributes", - "weight": 761, + "method": "getCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "databases\/update-text-attribute.md", + "demo": "databases\/get-collection.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\/update-text-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTable" + }, "auth": { "Project": [] } @@ -15338,59 +14450,17 @@ }, { "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>", "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 - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } } ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { - "post": { - "summary": "Create URL attribute", - "operationId": "databasesCreateUrlAttribute", + }, + "put": { + "summary": "Update collection", + "operationId": "databasesUpdateCollection", "consumes": [ "application\/json" ], @@ -15400,23 +14470,22 @@ "tags": [ "databases" ], - "description": "Create a URL attribute.\n", + "description": "Update a collection by its unique ID.", "responses": { - "202": { - "description": "AttributeURL", + "200": { + "description": "Collection", "schema": { - "$ref": "#\/definitions\/attributeUrl" + "$ref": "#\/definitions\/collection" } } }, "deprecated": true, "x-appwrite": { - "method": "createUrlAttribute", - "group": "attributes", - "weight": 756, + "method": "updateCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "databases\/create-url-attribute.md", + "demo": "databases\/update-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -15427,10 +14496,10 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-url-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-collection.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.createUrlColumn" + "replaceWith": "tablesDB.updateTable" }, "auth": { "Project": [] @@ -15465,86 +14534,152 @@ "schema": { "type": "object", "properties": { - "key": { + "name": { "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null + "description": "Collection name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "required": { + "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\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "documentSecurity": { "type": "boolean", - "description": "Is attribute required?", - "default": null, + "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 }, - "default": { - "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-nullable": true + "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 }, - "array": { + "purge": { "type": "boolean", - "description": "Is attribute an array?", + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", "default": false, "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { - "patch": { - "summary": "Update URL attribute", - "operationId": "databasesUpdateUrlAttribute", + }, + "delete": { + "summary": "Delete collection", + "operationId": "databasesDeleteCollection", "consumes": [ "application\/json" ], + "produces": [], + "tags": [ + "databases" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "method": "deleteCollection", + "group": "collections", + "cookies": false, + "type": "", + "demo": "databases\/delete-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-collection.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteTable" + }, + "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" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes": { + "get": { + "summary": "List attributes", + "operationId": "databasesListAttributes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", + "description": "List attributes in the collection.", "responses": { "200": { - "description": "AttributeURL", + "description": "Attributes List", "schema": { - "$ref": "#\/definitions\/attributeUrl" + "$ref": "#\/definitions\/attributeList" } } }, "deprecated": true, "x-appwrite": { - "method": "updateUrlAttribute", + "method": "listAttributes", "group": "attributes", - "weight": 757, "cookies": false, "type": "", - "demo": "databases\/update-url-attribute.md", + "demo": "databases\/list-attributes.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\/update-url-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-attributes.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateUrlColumn" + "replaceWith": "tablesDB.listColumns" }, "auth": { "Project": [] @@ -15574,53 +14709,33 @@ "in": "path" }, { - "name": "key", - "description": "Attribute 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: key, type, size, required, array, status, error", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "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": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Attribute 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" } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint": { "post": { - "summary": "Create varchar attribute", - "operationId": "databasesCreateVarcharAttribute", + "summary": "Create bigint attribute", + "operationId": "databasesCreateBigIntAttribute", "consumes": [ "application\/json" ], @@ -15630,23 +14745,22 @@ "tags": [ "databases" ], - "description": "Create a varchar attribute.\n", + "description": "Create a bigint attribute. Optionally, minimum and maximum values can be provided.\n", "responses": { "202": { - "description": "AttributeVarchar", + "description": "AttributeBigInt", "schema": { - "$ref": "#\/definitions\/attributeVarchar" + "$ref": "#\/definitions\/attributeBigint" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createVarcharAttribute", + "method": "createBigIntAttribute", "group": "attributes", - "weight": 758, "cookies": false, "type": "", - "demo": "databases\/create-varchar-attribute.md", + "demo": "databases\/create-big-int-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -15657,7 +14771,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-bigint-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createBigIntColumn" + }, "auth": { "Project": [] } @@ -15679,7 +14797,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>", @@ -15694,27 +14812,32 @@ "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 }, + "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": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "default": null, - "x-example": "<DEFAULT>", + "type": "integer", + "description": "Default value. Cannot be set when attribute is required.", + "x-example": null, + "format": "int64", "x-nullable": true }, "array": { @@ -15722,17 +14845,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" ] } @@ -15740,10 +14856,10 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/bigint\/{key}": { "patch": { - "summary": "Update varchar attribute", - "operationId": "databasesUpdateVarcharAttribute", + "summary": "Update bigint attribute", + "operationId": "databasesUpdateBigIntAttribute", "consumes": [ "application\/json" ], @@ -15753,23 +14869,22 @@ "tags": [ "databases" ], - "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update a bigint attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "AttributeVarchar", + "description": "AttributeBigInt", "schema": { - "$ref": "#\/definitions\/attributeVarchar" + "$ref": "#\/definitions\/attributeBigint" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateVarcharAttribute", + "method": "updateBigIntAttribute", "group": "attributes", - "weight": 759, "cookies": false, "type": "", - "demo": "databases\/update-varchar-attribute.md", + "demo": "databases\/update-big-int-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -15780,7 +14895,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-bigint-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateBigIntColumn" + }, "auth": { "Project": [] } @@ -15802,7 +14921,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>", @@ -15824,31 +14943,35 @@ "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": { + "min": { "type": "integer", - "description": "Maximum size of the varchar attribute.", - "default": null, - "x-example": 1, - "format": "int32", + "description": "Minimum value", + "x-example": null, + "format": "int64", "x-nullable": true }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "default": null, + "max": { + "type": "integer", + "description": "Maximum value", "x-example": null, + "format": "int64", "x-nullable": true - } + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when attribute is required.", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } }, "required": [ "required", @@ -15859,130 +14982,49 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { - "get": { - "summary": "Get attribute", - "operationId": "databasesGetAttribute", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean": { + "post": { + "summary": "Create boolean attribute", + "operationId": "databasesCreateBooleanAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Get attribute by ID.", + "description": "Create a boolean 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": "AttributeBoolean", "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" - } - ], - "x-discriminator": { - "propertyName": "type", - "mapping": { - "boolean": "#\/definitions\/attributeBoolean", - "integer": "#\/definitions\/attributeInteger", - "double": "#\/definitions\/attributeFloat", - "string": "#\/definitions\/attributeString", - "datetime": "#\/definitions\/attributeDatetime", - "relationship": "#\/definitions\/attributeRelationship" - }, - "x-propertyNames": [ - "type", - "format" - ], - "x-mapping": { - "#\/definitions\/attributeBoolean": { - "type": "boolean" - }, - "#\/definitions\/attributeInteger": { - "type": "integer" - }, - "#\/definitions\/attributeFloat": { - "type": "double" - }, - "#\/definitions\/attributeEmail": { - "type": "string", - "format": "email" - }, - "#\/definitions\/attributeEnum": { - "type": "string", - "format": "enum" - }, - "#\/definitions\/attributeUrl": { - "type": "string", - "format": "url" - }, - "#\/definitions\/attributeIp": { - "type": "string", - "format": "ip" - }, - "#\/definitions\/attributeDatetime": { - "type": "datetime" - }, - "#\/definitions\/attributeRelationship": { - "type": "relationship" - }, - "#\/definitions\/attributeString": { - "type": "string" - } - } - } + "$ref": "#\/definitions\/attributeBoolean" } } }, "deprecated": true, "x-appwrite": { - "method": "getAttribute", + "method": "createBooleanAttribute", "group": "attributes", - "weight": 727, "cookies": false, "type": "", - "demo": "databases\/get-attribute.md", + "demo": "databases\/create-boolean-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", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-boolean-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.getColumn" + "replaceWith": "tablesDB.createBooleanColumn" }, "auth": { "Project": [] @@ -16005,45 +15047,79 @@ }, { "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": "key", - "description": "Attribute Key.", - "required": true, - "type": "string", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "boolean", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": false, + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } } ] - }, - "delete": { - "summary": "Delete attribute", - "operationId": "databasesDeleteAttribute", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/boolean\/{key}": { + "patch": { + "summary": "Update boolean attribute", + "operationId": "databasesUpdateBooleanAttribute", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "databases" ], - "description": "Deletes an attribute.", + "description": "Update a boolean attribute. Changing the `default` value will not update already existing documents.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "AttributeBoolean", + "schema": { + "$ref": "#\/definitions\/attributeBoolean" + } } }, "deprecated": true, "x-appwrite": { - "method": "deleteAttribute", + "method": "updateBooleanAttribute", "group": "attributes", - "weight": 728, "cookies": false, "type": "", - "demo": "databases\/delete-attribute.md", + "demo": "databases\/update-boolean-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -16054,10 +15130,10 @@ ], "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\/update-boolean-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.deleteColumn" + "replaceWith": "tablesDB.updateBooleanColumn" }, "auth": { "Project": [] @@ -16080,7 +15156,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#createCollection).", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -16092,53 +15168,83 @@ "required": true, "type": "string", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "boolean", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": false, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New attribute key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { - "get": { - "summary": "List documents", - "operationId": "databasesListDocuments", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime": { + "post": { + "summary": "Create datetime attribute", + "operationId": "databasesCreateDatetimeAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "description": "Create a date time attribute according to the ISO 8601 standard.", "responses": { - "200": { - "description": "Documents List", + "202": { + "description": "AttributeDatetime", "schema": { - "$ref": "#\/definitions\/documentList" + "$ref": "#\/definitions\/attributeDatetime" } } }, "deprecated": true, "x-appwrite": { - "method": "listDocuments", - "group": "documents", - "weight": 918, + "method": "createDatetimeAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/list-documents.md", + "demo": "databases\/create-datetime-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-datetime-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.listRows" + "replaceWith": "tablesDB.createDatetimeColumn" }, "auth": { "Project": [] @@ -16147,9 +15253,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -16163,56 +15267,55 @@ }, { "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 collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", "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 caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } } ] - }, - "post": { - "summary": "Create document", - "operationId": "databasesCreateDocument", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/datetime\/{key}": { + "patch": { + "summary": "Update datetime attribute", + "operationId": "databasesUpdateDatetimeAttribute", "consumes": [ "application\/json" ], @@ -16222,108 +15325,37 @@ "tags": [ "databases" ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "description": "Update a date time attribute. Changing the `default` value will not update already existing documents.", "responses": { - "201": { - "description": "Document", + "200": { + "description": "AttributeDatetime", "schema": { - "$ref": "#\/definitions\/document" + "$ref": "#\/definitions\/attributeDatetime" } } }, "deprecated": true, "x-appwrite": { - "method": "createDocument", - "group": "documents", - "weight": 715, + "method": "updateDatetimeAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/update-datetime-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-datetime-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.createRow" + "replaceWith": "tablesDB.updateDatetimeColumn" }, - "methods": [ - { - "name": "createDocument", - "namespace": "databases", - "desc": "Create document", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documentId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documentId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/document" - } - ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "demo": "databases\/create-document.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createRow" - } - }, - { - "name": "createDocuments", - "namespace": "databases", - "desc": "Create documents", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "collectionId", - "documents", - "transactionId" - ], - "required": [ - "databaseId", - "collectionId", - "documents" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/documentList" - } - ], - "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", - "demo": "databases\/create-documents.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createRows" - } - } - ], "auth": { "Project": [] } @@ -16331,9 +15363,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -16347,64 +15377,57 @@ }, { "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.", + "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": { - "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\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false }, - "documents": { - "type": "array", - "description": "Array of documents data as JSON objects.", - "default": [], - "x-example": null, - "items": { - "type": "object" - } + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true }, - "transactionId": { + "newKey": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "description": "New attribute key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } ] - }, - "put": { - "summary": "Upsert documents", - "operationId": "databasesUpsertDocuments", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email": { + "post": { + "summary": "Create email attribute", + "operationId": "databasesCreateEmailAttribute", "consumes": [ "application\/json" ], @@ -16414,72 +15437,37 @@ "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", + "description": "Create an email attribute.\n", "responses": { - "201": { - "description": "Documents List", + "202": { + "description": "AttributeEmail", "schema": { - "$ref": "#\/definitions\/documentList" + "$ref": "#\/definitions\/attributeEmail" } } }, "deprecated": true, "x-appwrite": { - "method": "upsertDocuments", - "group": "documents", - "weight": 720, + "method": "createEmailAttribute", + "group": "attributes", "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", + "demo": "databases\/create-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-email-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.upsertRows" + "replaceWith": "tablesDB.createEmailColumn" }, - "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": [] } @@ -16513,33 +15501,43 @@ "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" - } + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null }, - "transactionId": { + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "email@example.com", + "format": "email", "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false } }, "required": [ - "documents" + "key", + "required" ] } } ] - }, + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/email\/{key}": { "patch": { - "summary": "Update documents", - "operationId": "databasesUpdateDocuments", + "summary": "Update email attribute", + "operationId": "databasesUpdateEmailAttribute", "consumes": [ "application\/json" ], @@ -16549,37 +15547,36 @@ "tags": [ "databases" ], - "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "description": "Update an email attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Documents List", + "description": "AttributeEmail", "schema": { - "$ref": "#\/definitions\/documentList" + "$ref": "#\/definitions\/attributeEmail" } } }, "deprecated": true, "x-appwrite": { - "method": "updateDocuments", - "group": "documents", - "weight": 718, + "method": "updateEmailAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/update-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/update-email-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-email-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateRows" + "replaceWith": "tablesDB.updateEmailColumn" }, "auth": { "Project": [] @@ -16608,42 +15605,51 @@ "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": { - "data": { - "type": "object", - "description": "Document data as JSON object. Include only attribute 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 attribute required?", + "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.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true }, - "transactionId": { + "newKey": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "description": "New Attribute Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } ] - }, - "delete": { - "summary": "Delete documents", - "operationId": "databasesDeleteDocuments", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum": { + "post": { + "summary": "Create enum attribute", + "operationId": "databasesCreateEnumAttribute", "consumes": [ "application\/json" ], @@ -16653,37 +15659,36 @@ "tags": [ "databases" ], - "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "description": "Create an enum attribute. The `elements` param acts as a white-list of accepted values for this attribute. \n", "responses": { - "200": { - "description": "Documents List", + "202": { + "description": "AttributeEnum", "schema": { - "$ref": "#\/definitions\/documentList" + "$ref": "#\/definitions\/attributeEnum" } } }, "deprecated": true, "x-appwrite": { - "method": "deleteDocuments", - "group": "documents", - "weight": 722, + "method": "createEnumAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/delete-documents.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/create-enum-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-enum-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.deleteRows" + "replaceWith": "tablesDB.createEnumColumn" }, "auth": { "Project": [] @@ -16706,7 +15711,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>", @@ -16718,71 +15723,90 @@ "schema": { "type": "object", "properties": { - "queries": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "elements": { "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": [], + "description": "Array of enum values.", "x-example": null, "items": { "type": "string" } }, - "transactionId": { + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "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?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "elements", + "required" + ] } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { - "get": { - "summary": "Get document", - "operationId": "databasesGetDocument", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/enum\/{key}": { + "patch": { + "summary": "Update enum attribute", + "operationId": "databasesUpdateEnumAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "description": "Update an enum attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Document", + "description": "AttributeEnum", "schema": { - "$ref": "#\/definitions\/document" + "$ref": "#\/definitions\/attributeEnum" } } }, "deprecated": true, "x-appwrite": { - "method": "getDocument", - "group": "documents", - "weight": 716, + "method": "updateEnumAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/get-document.md", + "demo": "databases\/update-enum-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-enum-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.getRow" + "replaceWith": "tablesDB.updateEnumColumn" }, "auth": { "Project": [] @@ -16791,9 +15815,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -16807,45 +15829,65 @@ }, { "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>", "in": "path" }, { - "name": "documentId", - "description": "Document ID.", + "name": "key", + "description": "Attribute Key.", "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" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "elements": { + "type": "array", + "description": "Updated list of enum values.", + "x-example": null, + "items": { + "type": "string" + } + }, + "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 + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } } ] - }, - "put": { - "summary": "Upsert a document", - "operationId": "databasesUpsertDocument", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float": { + "post": { + "summary": "Create float attribute", + "operationId": "databasesCreateFloatAttribute", "consumes": [ "application\/json" ], @@ -16855,75 +15897,37 @@ "tags": [ "databases" ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "description": "Create a float attribute. Optionally, minimum and maximum values can be provided.\n", "responses": { - "201": { - "description": "Document", + "202": { + "description": "AttributeFloat", "schema": { - "$ref": "#\/definitions\/document" + "$ref": "#\/definitions\/attributeFloat" } } }, "deprecated": true, "x-appwrite": { - "method": "upsertDocument", - "group": "documents", - "weight": 719, + "method": "createFloatAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/create-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-float-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.upsertRow" + "replaceWith": "tablesDB.createFloatColumn" }, - "methods": [ - { - "name": "upsertDocument", - "namespace": "databases", - "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#databasesCreateCollection) API or directly from your database console.", - "demo": "databases\/upsert-document.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.upsertRow" - } - } - ], "auth": { "Project": [] } @@ -16931,9 +15935,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -16953,51 +15955,63 @@ "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 attributes of the document to be created or updated.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" + "key": { + "type": "string", + "description": "Attribute 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).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "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 attribute an array?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] - }, + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/float\/{key}": { "patch": { - "summary": "Update document", - "operationId": "databasesUpdateDocument", + "summary": "Update float attribute", + "operationId": "databasesUpdateFloatAttribute", "consumes": [ "application\/json" ], @@ -17007,38 +16021,36 @@ "tags": [ "databases" ], - "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Update a float attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Document", + "description": "AttributeFloat", "schema": { - "$ref": "#\/definitions\/document" + "$ref": "#\/definitions\/attributeFloat" } } }, "deprecated": true, "x-appwrite": { - "method": "updateDocument", - "group": "documents", - "weight": 717, + "method": "updateFloatAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/update-float-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-float-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateRow" + "replaceWith": "tablesDB.updateFloatColumn" }, "auth": { "Project": [] @@ -17047,9 +16059,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -17070,11 +16080,10 @@ "in": "path" }, { - "name": "documentId", - "description": "Document ID.", + "name": "key", + "description": "Attribute Key.", "required": true, "type": "string", - "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -17083,73 +16092,91 @@ "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": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + "required": { + "type": "boolean", + "description": "Is attribute 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).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } + "min": { + "type": "number", + "description": "Minimum value.", + "x-example": null, + "format": "float", + "x-nullable": true }, - "transactionId": { + "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": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "description": "New Attribute Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } ] - }, - "delete": { - "summary": "Delete document", - "operationId": "databasesDeleteDocument", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer": { + "post": { + "summary": "Create integer attribute", + "operationId": "databasesCreateIntegerAttribute", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "databases" ], - "description": "Delete a document by its unique ID.", + "description": "Create an integer attribute. Optionally, minimum and maximum values can be provided.\n", "responses": { - "204": { - "description": "No content" + "202": { + "description": "AttributeInteger", + "schema": { + "$ref": "#\/definitions\/attributeInteger" + } } }, "deprecated": true, "x-appwrite": { - "method": "deleteDocument", - "group": "documents", - "weight": 721, + "method": "createIntegerAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/create-integer-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-integer-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.deleteRow" + "replaceWith": "tablesDB.createIntegerColumn" }, "auth": { "Project": [] @@ -17158,9 +16185,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -17174,80 +16199,108 @@ }, { "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>", "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": { + "key": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute 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 attribute is required.", + "x-example": null, + "format": "int64", "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/logs": { - "get": { - "summary": "List document logs", - "operationId": "databasesListDocumentLogs", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/integer\/{key}": { + "patch": { + "summary": "Update integer attribute", + "operationId": "databasesUpdateIntegerAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Get the document activity logs list by its unique ID.", + "description": "Update an integer attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Logs List", + "description": "AttributeInteger", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/attributeInteger" } } }, "deprecated": true, "x-appwrite": { - "method": "listDocumentLogs", - "group": "logs", - "weight": 724, + "method": "updateIntegerAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/list-document-logs.md", + "demo": "databases\/update-integer-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-document-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-integer-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.listRowLogs" + "replaceWith": "tablesDB.updateIntegerColumn" }, "auth": { "Project": [] @@ -17255,7 +16308,8 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -17276,32 +16330,64 @@ "in": "path" }, { - "name": "documentId", - "description": "Document ID.", + "name": "key", + "description": "Attribute Key.", "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" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is attribute 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 attribute is required.", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { - "patch": { - "summary": "Decrement document attribute", - "operationId": "databasesDecrementDocumentAttribute", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip": { + "post": { + "summary": "Create IP address attribute", + "operationId": "databasesCreateIpAttribute", "consumes": [ "application\/json" ], @@ -17311,38 +16397,36 @@ "tags": [ "databases" ], - "description": "Decrement a specific attribute of a document by a given value.", + "description": "Create IP address attribute.\n", "responses": { - "200": { - "description": "Document", + "202": { + "description": "AttributeIP", "schema": { - "$ref": "#\/definitions\/document" + "$ref": "#\/definitions\/attributeIp" } } }, "deprecated": true, "x-appwrite": { - "method": "decrementDocumentAttribute", - "group": "documents", - "weight": 726, + "method": "createIpAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/decrement-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/create-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ - "client", - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/decrement-document-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-ip-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.decrementRowColumn" + "replaceWith": "tablesDB.createIpColumn" }, "auth": { "Project": [] @@ -17351,8 +16435,6 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], @@ -17373,59 +16455,48 @@ "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": { - "value": { - "type": "number", - "description": "Value to increment the attribute by. The value must be a number.", - "default": 1, - "x-example": null, - "format": "float" + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null }, - "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", - "x-nullable": true + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false }, - "transactionId": { + "default": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "description": "Default value. Cannot be set when attribute is required.", + "x-example": null, "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/ip\/{key}": { "patch": { - "summary": "Increment document attribute", - "operationId": "databasesIncrementDocumentAttribute", + "summary": "Update IP address attribute", + "operationId": "databasesUpdateIpAttribute", "consumes": [ "application\/json" ], @@ -17435,38 +16506,36 @@ "tags": [ "databases" ], - "description": "Increment a specific attribute of a document by a given value.", + "description": "Update an ip attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Document", + "description": "AttributeIP", "schema": { - "$ref": "#\/definitions\/document" + "$ref": "#\/definitions\/attributeIp" } } }, "deprecated": true, "x-appwrite": { - "method": "incrementDocumentAttribute", - "group": "documents", - "weight": 725, + "method": "updateIpAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/increment-document-attribute.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "databases\/update-ip-attribute.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", "platforms": [ - "client", - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/increment-document-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-ip-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.incrementRowColumn" + "replaceWith": "tablesDB.updateIpColumn" }, "auth": { "Project": [] @@ -17475,8 +16544,6 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], @@ -17498,16 +16565,8 @@ "in": "path" }, { - "name": "documentId", - "description": "Document ID.", - "required": true, - "type": "string", - "x-example": "<DOCUMENT_ID>", - "in": "path" - }, - { - "name": "attribute", - "description": "Attribute key.", + "name": "key", + "description": "Attribute Key.", "required": true, "type": "string", "in": "path" @@ -17518,76 +16577,76 @@ "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" + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false }, - "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, + "default": { + "type": "string", + "description": "Default value. Cannot be set when attribute is required.", "x-example": null, - "format": "float", "x-nullable": true }, - "transactionId": { + "newKey": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "description": "New Attribute Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "databasesListIndexes", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line": { + "post": { + "summary": "Create line attribute", + "operationId": "databasesCreateLineAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "List indexes in the collection.", + "description": "Create a geometric line attribute.", "responses": { - "200": { - "description": "Indexes List", + "202": { + "description": "AttributeLine", "schema": { - "$ref": "#\/definitions\/indexList" + "$ref": "#\/definitions\/attributeLine" } } }, "deprecated": true, "x-appwrite": { - "method": "listIndexes", - "group": "indexes", - "weight": 769, + "method": "createLineAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/list-indexes.md", + "demo": "databases\/create-line-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\/list-indexes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-line-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.listIndexes" + "replaceWith": "tablesDB.createLineColumn" }, "auth": { "Project": [] @@ -17617,57 +16676,66 @@ "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" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "x-nullable": true + } + }, + "required": [ + "key", + "required" + ] + } } ] - }, - "post": { - "summary": "Create index", - "operationId": "databasesCreateIndex", - "consumes": [ - "application\/json" - ], - "produces": [ + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/line\/{key}": { + "patch": { + "summary": "Update line attribute", + "operationId": "databasesUpdateLineAttribute", + "consumes": [ + "application\/json" + ], + "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "description": "Update a line attribute. Changing the `default` value will not update already existing documents.", "responses": { - "202": { - "description": "Index", + "200": { + "description": "AttributeLine", "schema": { - "$ref": "#\/definitions\/index" + "$ref": "#\/definitions\/attributeLine" } } }, "deprecated": true, "x-appwrite": { - "method": "createIndex", - "group": "indexes", - "weight": 766, + "method": "updateLineAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/create-index.md", + "demo": "databases\/update-line-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -17678,10 +16746,10 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-line-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.createIndex" + "replaceWith": "tablesDB.updateLineColumn" }, "auth": { "Project": [] @@ -17704,125 +16772,91 @@ }, { "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 collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", "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": { - "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": "DatabasesIndexType", - "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" - } + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false }, - "orders": { + "default": { "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": [] - } + "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "x-nullable": true }, - "lengths": { - "type": "array", - "description": "Length of index. Maximum of 100", - "default": [], + "newKey": { + "type": "string", + "description": "New attribute key.", "x-example": null, - "items": { - "type": "integer" - } + "x-nullable": true } }, "required": [ - "key", - "type", - "attributes" + "required" ] } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { - "get": { - "summary": "Get index", - "operationId": "databasesGetIndex", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext": { + "post": { + "summary": "Create longtext attribute", + "operationId": "databasesCreateLongtextAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Get an index by its unique ID.", + "description": "Create a longtext attribute.\n", "responses": { - "200": { - "description": "Index", + "202": { + "description": "AttributeLongtext", "schema": { - "$ref": "#\/definitions\/index" + "$ref": "#\/definitions\/attributeLongtext" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getIndex", - "group": "indexes", - "weight": 767, + "method": "createLongtextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/get-index.md", + "demo": "databases\/create-longtext-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-index.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getIndex" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-longtext-attribute.md", "auth": { "Project": [] } @@ -17851,38 +16885,78 @@ "in": "path" }, { - "name": "key", - "description": "Index Key.", - "required": true, - "type": "string", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "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?", + "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", + "required" + ] + } } ] - }, - "delete": { - "summary": "Delete index", - "operationId": "databasesDeleteIndex", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/longtext\/{key}": { + "patch": { + "summary": "Update longtext attribute", + "operationId": "databasesUpdateLongtextAttribute", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "databases" ], - "description": "Delete an index.", + "description": "Update a longtext attribute. Changing the `default` value will not update already existing documents.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "AttributeLongtext", + "schema": { + "$ref": "#\/definitions\/attributeLongtext" + } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteIndex", - "group": "indexes", - "weight": 768, + "method": "updateLongtextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/delete-index.md", + "demo": "databases\/update-longtext-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -17893,11 +16967,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-index.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteIndex" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-longtext-attribute.md", "auth": { "Project": [] } @@ -17927,63 +16997,92 @@ }, { "name": "key", - "description": "Index 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?", + "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 + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/logs": { - "get": { - "summary": "List collection logs", - "operationId": "databasesListCollectionLogs", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext": { + "post": { + "summary": "Create mediumtext attribute", + "operationId": "databasesCreateMediumtextAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Get the collection activity logs list by its unique ID.", + "description": "Create a mediumtext attribute.\n", "responses": { - "200": { - "description": "Logs List", + "202": { + "description": "AttributeMediumtext", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/attributeMediumtext" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listCollectionLogs", - "group": "collections", - "weight": 713, + "method": "createMediumtextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/list-collection-logs.md", + "demo": "databases\/create-mediumtext-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection-logs.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listTableLogs" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-mediumtext-attribute.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -17997,76 +17096,104 @@ }, { "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": "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": "Attribute Key.", + "x-example": null + }, + "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?", + "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", + "required" + ] + } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/usage": { - "get": { - "summary": "Get collection usage stats", - "operationId": "databasesGetCollectionUsage", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext attribute", + "operationId": "databasesUpdateMediumtextAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "databases" ], - "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.", + "description": "Update a mediumtext attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "UsageCollection", + "description": "AttributeMediumtext", "schema": { - "$ref": "#\/definitions\/usageCollection" + "$ref": "#\/definitions\/attributeMediumtext" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getCollectionUsage", - "group": null, - "weight": 714, + "method": "updateMediumtextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/get-collection-usage.md", + "demo": "databases\/update-mediumtext-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection-usage.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getTableUsage" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-mediumtext-attribute.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -18079,115 +17206,105 @@ "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, + "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": "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": "<COLLECTION_ID>", + "in": "path" }, { - "name": "collectionId", - "description": "Collection ID.", + "name": "key", + "description": "Attribute Key.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "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 + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] } }, - "\/databases\/{databaseId}\/logs": { - "get": { - "summary": "List database logs", - "operationId": "databasesListLogs", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point": { + "post": { + "summary": "Create point attribute", + "operationId": "databasesCreatePointAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Get the database activity logs list by its unique ID.", + "description": "Create a geometric point attribute.", "responses": { - "200": { - "description": "Logs List", + "202": { + "description": "AttributePoint", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/attributePoint" } } }, "deprecated": true, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 705, + "method": "createPointAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/list-logs.md", + "demo": "databases\/create-point-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-point-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.listDatabaseLogs" + "replaceWith": "tablesDB.createPointColumn" }, - "methods": [ - { - "name": "listLogs", - "namespace": "databases", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "queries" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/logList" - } - ], - "description": "Get the database activity logs list by its unique ID.", - "demo": "databases\/list-logs.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.listDatabaseLogs" - } - } - ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -18200,99 +17317,97 @@ "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": "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": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "x-example": "[1, 2]", + "x-nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } ] } }, - "\/databases\/{databaseId}\/usage": { - "get": { - "summary": "Get database usage stats", - "operationId": "databasesGetUsage", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/point\/{key}": { + "patch": { + "summary": "Update point attribute", + "operationId": "databasesUpdatePointAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "databases" ], - "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.", + "description": "Update a point attribute. Changing the `default` value will not update already existing documents.", "responses": { "200": { - "description": "UsageDatabase", + "description": "AttributePoint", "schema": { - "$ref": "#\/definitions\/usageDatabase" + "$ref": "#\/definitions\/attributePoint" } } }, "deprecated": true, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 706, + "method": "updatePointAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "databases\/get-usage.md", + "demo": "databases\/update-point-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-database-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-point-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.getUsage" + "replaceWith": "tablesDB.updatePointColumn" }, - "methods": [ - { - "name": "getUsage", - "namespace": "databases", - "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 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": "databases\/get-usage.md", - "public": true, - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getUsage" - } - } - ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -18305,67 +17420,96 @@ "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#createCollection).", + "required": true, "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": "<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?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", + "x-example": "[1, 2]", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New attribute key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } } ] } }, - "\/documentsdb": { - "get": { - "summary": "List databases", - "operationId": "documentsDBList", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon": { + "post": { + "summary": "Create polygon attribute", + "operationId": "databasesCreatePolygonAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Create a geometric polygon attribute.", "responses": { - "200": { - "description": "Databases List", + "202": { + "description": "AttributePolygon", "schema": { - "$ref": "#\/definitions\/databaseList" + "$ref": "#\/definitions\/attributePolygon" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "list", - "group": "documentsdb", - "weight": 855, + "method": "createPolygonAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/list.md", + "demo": "databases\/create-polygon-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-polygon-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createPolygonColumn" + }, "auth": { "Project": [] } @@ -18378,40 +17522,57 @@ ], "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": "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": "<SEARCH>", - "default": "", - "in": "query" + "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": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", + "x-nullable": true + } + }, + "required": [ + "key", + "required" + ] + } } ] - }, - "post": { - "summary": "Create database", - "operationId": "documentsDBCreate", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/polygon\/{key}": { + "patch": { + "summary": "Update polygon attribute", + "operationId": "databasesUpdatePolygonAttribute", "consumes": [ "application\/json" ], @@ -18419,36 +17580,39 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Create a new Database.\n", + "description": "Update a polygon attribute. Changing the `default` value will not update already existing documents.", "responses": { - "201": { - "description": "Database", + "200": { + "description": "AttributePolygon", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/attributePolygon" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "create", - "group": "documentsdb", - "weight": 851, + "method": "updatePolygonAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/create.md", + "demo": "databases\/update-polygon-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-polygon-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updatePolygonColumn" + }, "auth": { "Project": [] } @@ -18460,80 +17624,105 @@ } ], "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#createCollection).", + "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": { - "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": { + "required": { "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 attribute required?", "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New attribute key.", + "x-example": null, + "x-nullable": true } }, "required": [ - "databaseId", - "name" + "required" ] } } ] } }, - "\/documentsdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "documentsDBListTransactions", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship": { + "post": { + "summary": "Create relationship attribute", + "operationId": "databasesCreateRelationshipAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "List transactions across all databases.", + "description": "Create relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", "responses": { - "200": { - "description": "Transaction List", + "202": { + "description": "AttributeRelationship", "schema": { - "$ref": "#\/definitions\/transactionList" + "$ref": "#\/definitions\/attributeRelationship" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 883, + "method": "createRelationshipAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/list-transactions.md", + "demo": "databases\/create-relationship-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-transactions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-relationship-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRelationshipColumn" + }, "auth": { "Project": [] } @@ -18541,29 +17730,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, - "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": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "relatedCollectionId": { + "type": "string", + "description": "Related Collection ID.", + "x-example": "<RELATED_COLLECTION_ID>" + }, + "type": { + "type": "string", + "description": "Relation type", + "x-example": "oneToOne", + "enum": [ + "oneToOne", + "manyToOne", + "manyToMany", + "oneToMany" + ], + "x-enum-name": "RelationshipType" + }, + "twoWay": { + "type": "boolean", + "description": "Is Two Way?", + "default": false, + "x-example": false + }, + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null, + "x-nullable": true + }, + "twoWayKey": { + "type": "string", + "description": "Two Way Attribute Key.", + "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" + } + }, + "required": [ + "relatedCollectionId", + "type" + ] + } } ] - }, - "post": { - "summary": "Create transaction", - "operationId": "documentsDBCreateTransaction", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { + "patch": { + "summary": "Update relationship attribute", + "operationId": "databasesUpdateRelationshipAttribute", "consumes": [ "application\/json" ], @@ -18571,62 +17824,95 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Create a new transaction.", + "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", "responses": { - "201": { - "description": "Transaction", + "200": { + "description": "AttributeRelationship", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/attributeRelationship" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 879, + "method": "updateRelationshipAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/create-transaction.md", + "demo": "databases\/update-relationship-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "collections.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-transaction.md", - "auth": { - "Project": [] - } + "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": [], - "Session": [], - "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": "key", + "description": "Attribute Key.", + "required": true, + "type": "string", + "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" + "onDelete": { + "type": "string", + "description": "Constraints option", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate" + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true } } } @@ -18634,46 +17920,50 @@ ] } }, - "\/documentsdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "documentsDBGetTransaction", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { + "post": { + "summary": "Create string attribute", + "operationId": "databasesCreateStringAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Get a transaction by its unique ID.", + "description": "Create a string attribute.\n", "responses": { - "200": { - "description": "Transaction", + "202": { + "description": "AttributeString", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/attributeString" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 880, + "method": "createStringAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/get-transaction.md", + "demo": "databases\/create-string-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "collections.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-transaction.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": [] } @@ -18681,25 +17971,81 @@ "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": "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.", + "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?", + "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 transaction", - "operationId": "documentsDBUpdateTransaction", + "summary": "Update string attribute", + "operationId": "databasesUpdateStringAttribute", "consumes": [ "application\/json" ], @@ -18707,37 +18053,39 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Transaction", + "description": "AttributeString", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/attributeString" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 881, + "method": "updateStringAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/update-transaction.md", + "demo": "databases\/update-string-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "collections.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-transaction.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": [] } @@ -18745,18 +18093,31 @@ "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": "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", - "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -18765,59 +18126,80 @@ "schema": { "type": "object", "properties": { - "commit": { + "required": { "type": "boolean", - "description": "Commit transaction?", - "default": false, + "description": "Is attribute required?", "x-example": false }, - "rollback": { - "type": "boolean", - "description": "Rollback transaction?", - "default": false, - "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 + }, + "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.", + "x-example": null, + "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } ] - }, - "delete": { - "summary": "Delete transaction", - "operationId": "documentsDBDeleteTransaction", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + "post": { + "summary": "Create text attribute", + "operationId": "databasesCreateTextAttribute", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "documentsDB" + "databases" ], - "description": "Delete a transaction by its unique ID.", + "description": "Create a text attribute.\n", "responses": { - "204": { - "description": "No content" + "202": { + "description": "AttributeText", + "schema": { + "$ref": "#\/definitions\/attributeText" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 882, + "method": "createTextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/delete-transaction.md", + "demo": "databases\/create-text-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "collections.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-text-attribute.md", "auth": { "Project": [] } @@ -18825,156 +18207,221 @@ "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": "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": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "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?", + "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", + "required" + ] + } } ] } }, - "\/documentsdb\/usage": { - "get": { - "summary": "Get DocumentsDB usage stats", - "operationId": "documentsDBListUsage", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { + "patch": { + "summary": "Update text attribute", + "operationId": "databasesUpdateTextAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "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.", + "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "UsageDatabases", + "description": "AttributeText", "schema": { - "$ref": "#\/definitions\/usageDatabases" + "$ref": "#\/definitions\/attributeText" } } }, "deprecated": false, "x-appwrite": { - "method": "listUsage", - "group": null, - "weight": 857, + "method": "updateTextAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/list-usage.md", + "demo": "databases\/update-text-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "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 - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-text-attribute.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": "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": "Attribute Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "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 + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] } }, - "\/documentsdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "documentsDBGet", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { + "post": { + "summary": "Create URL attribute", + "operationId": "databasesCreateUrlAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Create a URL attribute.\n", "responses": { - "200": { - "description": "Database", + "202": { + "description": "AttributeURL", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/attributeUrl" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "get", - "group": "documentsdb", - "weight": 852, + "method": "createUrlAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/get.md", + "demo": "databases\/create-url-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get.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": [] } @@ -18993,12 +18440,58 @@ "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": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "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": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } } ] - }, - "put": { - "summary": "Update database", - "operationId": "documentsDBUpdate", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { + "patch": { + "summary": "Update URL attribute", + "operationId": "databasesUpdateUrlAttribute", "consumes": [ "application\/json" ], @@ -19006,36 +18499,39 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Update a database by its unique ID.", + "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "Database", + "description": "AttributeURL", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/attributeUrl" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "update", - "group": "documentsdb", - "weight": 853, + "method": "updateUrlAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/update.md", + "demo": "databases\/update-url-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update.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": [] } @@ -19055,128 +18551,95 @@ "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": { - "name": { - "type": "string", - "description": "Database name. Max length: 128 chars.", - "default": null, - "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.", - "default": true, + "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": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-nullable": true } }, "required": [ - "name" + "required", + "default" ] } } ] - }, - "delete": { - "summary": "Delete database", - "operationId": "documentsDBDelete", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "post": { + "summary": "Create varchar attribute", + "operationId": "databasesCreateVarcharAttribute", "consumes": [ "application\/json" ], - "produces": [], - "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": "delete", - "group": "documentsdb", - "weight": 854, - "cookies": false, - "type": "", - "demo": "documentsdb\/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\/documentsdb\/delete.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - } - ] - } - }, - "\/documentsdb\/{databaseId}\/collections": { - "get": { - "summary": "List collections", - "operationId": "documentsDBListCollections", - "consumes": [], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "description": "Create a varchar attribute.\n", "responses": { - "200": { - "description": "Collections List", + "202": { + "description": "AttributeVarchar", "schema": { - "$ref": "#\/definitions\/collectionList" + "$ref": "#\/definitions\/attributeVarchar" } } }, "deprecated": false, "x-appwrite": { - "method": "listCollections", - "group": "collections", - "weight": 862, + "method": "createVarcharAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/list-collections.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\/documentsdb\/list-collections.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-varchar-attribute.md", "auth": { "Project": [] } @@ -19197,40 +18660,68 @@ "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, + "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": "<SEARCH>", - "default": "", - "in": "query" + "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": { + "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": "<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" + ] + } } ] - }, - "post": { - "summary": "Create collection", - "operationId": "documentsDBCreateCollection", + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "patch": { + "summary": "Update varchar attribute", + "operationId": "databasesUpdateVarcharAttribute", "consumes": [ "application\/json" ], @@ -19238,25 +18729,24 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Create a new Collection. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", "responses": { - "201": { - "description": "Collection", + "200": { + "description": "AttributeVarchar", "schema": { - "$ref": "#\/definitions\/collection" + "$ref": "#\/definitions\/attributeVarchar" } } }, "deprecated": false, "x-appwrite": { - "method": "createCollection", - "group": "collections", - "weight": 858, + "method": "updateVarcharAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/create-collection.md", + "demo": "databases\/update-varchar-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -19267,7 +18757,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-varchar-attribute.md", "auth": { "Project": [] } @@ -19287,102 +18777,170 @@ "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": "Attribute Key.", + "required": true, + "type": "string", + "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": { + "required": { "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, + "description": "Is attribute required?", "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 + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "<DEFAULT>", + "x-nullable": true }, - "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" - } + "size": { + "type": "integer", + "description": "Maximum size of the varchar attribute.", + "x-example": 1, + "format": "int32", + "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 attribute keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "default": [], + "newKey": { + "type": "string", + "description": "New Attribute Key.", "x-example": null, - "items": { - "type": "object" - } + "x-nullable": true } }, "required": [ - "collectionId", - "name" + "required", + "default" ] } } ] } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { "get": { - "summary": "Get collection", - "operationId": "documentsDBGetCollection", + "summary": "Get attribute", + "operationId": "databasesGetAttribute", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "description": "Get attribute by ID.", "responses": { "200": { - "description": "Collection", + "description": "AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributeString", "schema": { - "$ref": "#\/definitions\/collection" + "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" + } + ], + "x-discriminator": { + "propertyName": "type", + "mapping": { + "boolean": "#\/definitions\/attributeBoolean", + "integer": "#\/definitions\/attributeInteger", + "double": "#\/definitions\/attributeFloat", + "string": "#\/definitions\/attributeString", + "datetime": "#\/definitions\/attributeDatetime", + "relationship": "#\/definitions\/attributeRelationship" + }, + "x-propertyNames": [ + "type", + "format" + ], + "x-mapping": { + "#\/definitions\/attributeBoolean": { + "type": "boolean" + }, + "#\/definitions\/attributeInteger": { + "type": "integer" + }, + "#\/definitions\/attributeFloat": { + "type": "double" + }, + "#\/definitions\/attributeEmail": { + "type": "string", + "format": "email" + }, + "#\/definitions\/attributeEnum": { + "type": "string", + "format": "enum" + }, + "#\/definitions\/attributeUrl": { + "type": "string", + "format": "url" + }, + "#\/definitions\/attributeIp": { + "type": "string", + "format": "ip" + }, + "#\/definitions\/attributeDatetime": { + "type": "datetime" + }, + "#\/definitions\/attributeRelationship": { + "type": "relationship" + }, + "#\/definitions\/attributeString": { + "type": "string" + } + } + } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getCollection", - "group": "collections", - "weight": 859, + "method": "getAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/get-collection.md", + "demo": "databases\/get-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -19393,7 +18951,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getColumn" + }, "auth": { "Project": [] } @@ -19420,38 +18982,39 @@ "type": "string", "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "type": "string", + "in": "path" } ] }, - "put": { - "summary": "Update collection", - "operationId": "documentsDBUpdateCollection", + "delete": { + "summary": "Delete attribute", + "operationId": "databasesDeleteAttribute", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "documentsDB" + "databases" ], - "description": "Update a collection by its unique ID.", + "description": "Deletes an attribute.", "responses": { - "200": { - "description": "Collection", - "schema": { - "$ref": "#\/definitions\/collection" - } + "204": { + "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateCollection", - "group": "collections", - "weight": 860, + "method": "deleteAttribute", + "group": "attributes", "cookies": false, "type": "", - "demo": "documentsdb\/update-collection.md", + "demo": "databases\/delete-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -19462,7 +19025,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteColumn" + }, "auth": { "Project": [] } @@ -19491,127 +19058,25 @@ "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 - }, - "purge": { - "type": "boolean", - "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", - "default": false, - "x-example": false - } - }, - "required": [ - "name" - ] - } - } - ] - }, - "delete": { - "summary": "Delete collection", - "operationId": "documentsDBDeleteCollection", - "consumes": [ - "application\/json" - ], - "produces": [], - "tags": [ - "documentsDB" - ], - "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteCollection", - "group": "collections", - "weight": 861, - "cookies": false, - "type": "", - "demo": "documentsdb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-collection.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", + "name": "key", + "description": "Attribute Key.", "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" } ] } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { "summary": "List documents", - "operationId": "documentsDBListDocuments", + "operationId": "databasesListDocuments", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", "responses": { @@ -19622,14 +19087,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 919, "cookies": false, "type": "", - "demo": "documentsdb\/list-documents.md", + "demo": "databases\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -19641,7 +19105,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-documents.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listRows" + }, "auth": { "Project": [] } @@ -19702,7 +19170,7 @@ }, { "name": "ttl", - "description": "TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", "required": false, "type": "integer", "format": "int32", @@ -19714,7 +19182,7 @@ }, "post": { "summary": "Create document", - "operationId": "documentsDBCreateDocument", + "operationId": "databasesCreateDocument", "consumes": [ "application\/json" ], @@ -19722,9 +19190,9 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { "201": { "description": "Document", @@ -19733,14 +19201,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 868, "cookies": false, "type": "", - "demo": "documentsdb\/create-document.md", + "demo": "databases\/create-document.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -19752,11 +19219,15 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-document.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + }, "methods": [ { "name": "createDocument", - "namespace": "documentsDB", + "namespace": "databases", "desc": "Create document", "auth": { "Project": [] @@ -19766,7 +19237,8 @@ "collectionId", "documentId", "data", - "permissions" + "permissions", + "transactionId" ], "required": [ "databaseId", @@ -19780,13 +19252,17 @@ "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 + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRow" + } }, { "name": "createDocuments", - "namespace": "documentsDB", + "namespace": "databases", "desc": "Create documents", "auth": { "Project": [] @@ -19794,7 +19270,8 @@ "parameters": [ "databaseId", "collectionId", - "documents" + "documents", + "transactionId" ], "required": [ "databaseId", @@ -19807,9 +19284,13 @@ "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 + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/create-documents.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createRows" + } } ], "auth": { @@ -19862,8 +19343,8 @@ "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" } @@ -19880,8 +19361,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } } } @@ -19890,7 +19371,7 @@ }, "put": { "summary": "Upsert documents", - "operationId": "documentsDBUpsertDocuments", + "operationId": "databasesUpsertDocuments", "consumes": [ "application\/json" ], @@ -19898,9 +19379,9 @@ "application\/json" ], "tags": [ - "documentsDB" + "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#documentsDBCreateCollection) API or directly from your database console.\n", + "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", @@ -19909,14 +19390,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 873, "cookies": false, "type": "", - "demo": "documentsdb\/upsert-documents.md", + "demo": "databases\/upsert-documents.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -19927,11 +19407,15 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-documents.md", + "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": "documentsDB", + "namespace": "databases", "desc": "", "auth": { "Project": [] @@ -19953,9 +19437,13 @@ "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 + "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": { @@ -19994,7 +19482,6 @@ "documents": { "type": "array", "description": "Array of document data as JSON objects. May contain partial documents.", - "default": null, "x-example": null, "items": { "type": "object" @@ -20003,8 +19490,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } }, "required": [ @@ -20016,7 +19503,7 @@ }, "patch": { "summary": "Update documents", - "operationId": "documentsDBUpdateDocuments", + "operationId": "databasesUpdateDocuments", "consumes": [ "application\/json" ], @@ -20024,7 +19511,7 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", "responses": { @@ -20035,14 +19522,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 871, "cookies": false, "type": "", - "demo": "documentsdb\/update-documents.md", + "demo": "databases\/update-documents.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20053,7 +19539,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-documents.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRows" + }, "auth": { "Project": [] } @@ -20091,7 +19581,7 @@ "type": "object", "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", "default": [], - "x-example": "{}" + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, "queries": { "type": "array", @@ -20105,8 +19595,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } } } @@ -20115,7 +19605,7 @@ }, "delete": { "summary": "Delete documents", - "operationId": "documentsDBDeleteDocuments", + "operationId": "databasesDeleteDocuments", "consumes": [ "application\/json" ], @@ -20123,7 +19613,7 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", "responses": { @@ -20134,14 +19624,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 875, "cookies": false, "type": "", - "demo": "documentsdb\/delete-documents.md", + "demo": "databases\/delete-documents.md", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20152,7 +19641,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-documents.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRows" + }, "auth": { "Project": [] } @@ -20198,8 +19691,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } } } @@ -20207,16 +19700,16 @@ ] } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { "get": { "summary": "Get document", - "operationId": "documentsDBGetDocument", + "operationId": "databasesGetDocument", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", "responses": { @@ -20227,14 +19720,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 869, "cookies": false, "type": "", - "demo": "documentsdb\/get-document.md", + "demo": "databases\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -20246,7 +19738,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-document.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getRow" + }, "auth": { "Project": [] } @@ -20308,7 +19804,7 @@ }, "put": { "summary": "Upsert a document", - "operationId": "documentsDBUpsertDocument", + "operationId": "databasesUpsertDocument", "consumes": [ "application\/json" ], @@ -20316,9 +19812,9 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", "responses": { "201": { "description": "Document", @@ -20327,14 +19823,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 872, "cookies": false, "type": "", - "demo": "documentsdb\/upsert-document.md", + "demo": "databases\/upsert-document.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20346,11 +19841,15 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-document.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + }, "methods": [ { "name": "upsertDocument", - "namespace": "documentsDB", + "namespace": "databases", "desc": "", "auth": { "Project": [] @@ -20374,9 +19873,13 @@ "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 + "description": "Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.", + "demo": "databases\/upsert-document.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRow" + } } ], "auth": { @@ -20424,15 +19927,15 @@ "properties": { "data": { "type": "object", - "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "description": "Document data as JSON object. Include all required attributes of the document to be created or updated.", "default": [], - "x-example": "{}" + "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, 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" } @@ -20440,8 +19943,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } } } @@ -20450,7 +19953,7 @@ }, "patch": { "summary": "Update document", - "operationId": "documentsDBUpdateDocument", + "operationId": "databasesUpdateDocument", "consumes": [ "application\/json" ], @@ -20458,7 +19961,7 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { @@ -20469,14 +19972,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 870, "cookies": false, "type": "", - "demo": "documentsdb\/update-document.md", + "demo": "databases\/update-document.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20488,7 +19990,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-document.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateRow" + }, "auth": { "Project": [] } @@ -20534,15 +20040,15 @@ "properties": { "data": { "type": "object", - "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", "default": [], - "x-example": "{}" + "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" } @@ -20550,8 +20056,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } } } @@ -20560,13 +20066,13 @@ }, "delete": { "summary": "Delete document", - "operationId": "documentsDBDeleteDocument", + "operationId": "databasesDeleteDocument", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "documentsDB" + "databases" ], "description": "Delete a document by its unique ID.", "responses": { @@ -20574,14 +20080,13 @@ "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 874, "cookies": false, "type": "", - "demo": "documentsdb\/delete-document.md", + "demo": "databases\/delete-document.md", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20593,7 +20098,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-document.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteRow" + }, "auth": { "Project": [] } @@ -20640,8 +20149,8 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } } } @@ -20649,10 +20158,100 @@ ] } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/logs": { + "get": { + "summary": "List document logs", + "operationId": "databasesListDocumentLogs", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Get the document activity logs list by its unique ID.", + "responses": { + "200": { + "description": "Logs List", + "schema": { + "$ref": "#\/definitions\/logList" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "listDocumentLogs", + "group": "logs", + "cookies": false, + "type": "", + "demo": "databases\/list-document-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-document-logs.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listRowLogs" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "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": "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" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { "patch": { "summary": "Decrement document attribute", - "operationId": "documentsDBDecrementDocumentAttribute", + "operationId": "databasesDecrementDocumentAttribute", "consumes": [ "application\/json" ], @@ -20660,9 +20259,9 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Decrement a specific column of a row by a given value.", + "description": "Decrement a specific attribute of a document by a given value.", "responses": { "200": { "description": "Document", @@ -20671,14 +20270,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 878, "cookies": false, "type": "", - "demo": "documentsdb\/decrement-document-attribute.md", + "demo": "databases\/decrement-document-attribute.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20690,7 +20288,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/decrement-document-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/decrement-document-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.decrementRowColumn" + }, "auth": { "Project": [] } @@ -20743,7 +20345,7 @@ "properties": { "value": { "type": "number", - "description": "Value to decrement the attribute by. The value must be a number.", + "description": "Value to increment the attribute by. The value must be a number.", "default": 1, "x-example": null, "format": "float" @@ -20751,15 +20353,15 @@ "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" + "format": "float", + "x-nullable": true }, "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } } } @@ -20767,10 +20369,10 @@ ] } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { "patch": { "summary": "Increment document attribute", - "operationId": "documentsDBIncrementDocumentAttribute", + "operationId": "databasesIncrementDocumentAttribute", "consumes": [ "application\/json" ], @@ -20778,9 +20380,9 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Increment a specific column of a row by a given value.", + "description": "Increment a specific attribute of a document by a given value.", "responses": { "200": { "description": "Document", @@ -20789,14 +20391,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 877, "cookies": false, "type": "", - "demo": "documentsdb\/increment-document-attribute.md", + "demo": "databases\/increment-document-attribute.md", "rate-limit": 120, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", @@ -20808,7 +20409,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/increment-document-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/increment-document-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.incrementRowColumn" + }, "auth": { "Project": [] } @@ -20869,15 +20474,15 @@ "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" + "format": "float", + "x-nullable": true }, "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } } } @@ -20885,16 +20490,16 @@ ] } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes": { "get": { "summary": "List indexes", - "operationId": "documentsDBListIndexes", + "operationId": "databasesListIndexes", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], "description": "List indexes in the collection.", "responses": { @@ -20905,14 +20510,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 867, "cookies": false, "type": "", - "demo": "documentsdb\/list-indexes.md", + "demo": "databases\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -20923,7 +20527,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-indexes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/list-indexes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listIndexes" + }, "auth": { "Project": [] } @@ -20976,7 +20584,7 @@ }, "post": { "summary": "Create index", - "operationId": "documentsDBCreateIndex", + "operationId": "databasesCreateIndex", "consumes": [ "application\/json" ], @@ -20984,7 +20592,7 @@ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", "responses": { @@ -20995,14 +20603,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 864, "cookies": false, "type": "", - "demo": "documentsdb\/create-index.md", + "demo": "databases\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21013,7 +20620,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-index.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createIndex" + }, "auth": { "Project": [] } @@ -21050,26 +20661,23 @@ "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" + "unique", + "spatial" ], - "x-enum-name": "DocumentsDBIndexType", - "x-enum-keys": [] + "x-enum-name": "DatabasesIndexType" }, "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" @@ -21086,8 +20694,7 @@ "asc", "desc" ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] + "x-enum-name": "OrderBy" } }, "lengths": { @@ -21110,18 +20717,18 @@ ] } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { "get": { "summary": "Get index", - "operationId": "documentsDBGetIndex", + "operationId": "databasesGetIndex", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], - "description": "Get index by ID.", + "description": "Get an index by its unique ID.", "responses": { "200": { "description": "Index", @@ -21130,14 +20737,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 865, "cookies": false, "type": "", - "demo": "documentsdb\/get-index.md", + "demo": "databases\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21148,7 +20754,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-index.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getIndex" + }, "auth": { "Project": [] } @@ -21187,13 +20797,13 @@ }, "delete": { "summary": "Delete index", - "operationId": "documentsDBDeleteIndex", + "operationId": "databasesDeleteIndex", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "documentsDB" + "databases" ], "description": "Delete an index.", "responses": { @@ -21201,14 +20811,13 @@ "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 866, "cookies": false, "type": "", - "demo": "documentsdb\/delete-index.md", + "demo": "databases\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21219,7 +20828,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-index.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteIndex" + }, "auth": { "Project": [] } @@ -21257,16 +20870,98 @@ ] } }, - "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/usage": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/logs": { + "get": { + "summary": "List collection logs", + "operationId": "databasesListCollectionLogs", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Get the collection activity logs list by its unique ID.", + "responses": { + "200": { + "description": "Logs List", + "schema": { + "$ref": "#\/definitions\/logList" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "listCollectionLogs", + "group": "collections", + "cookies": false, + "type": "", + "demo": "databases\/list-collection-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection-logs.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listTableLogs" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "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). Only supported methods are limit and offset", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/usage": { "get": { "summary": "Get collection usage stats", - "operationId": "documentsDBGetCollectionUsage", + "operationId": "databasesGetCollectionUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" ], "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": { @@ -21277,14 +20972,13 @@ } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "getCollectionUsage", "group": null, - "weight": 863, "cookies": false, "type": "", - "demo": "documentsdb\/get-collection-usage.md", + "demo": "databases\/get-collection-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21294,7 +20988,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-collection-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-collection-usage.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getTableUsage" + }, "auth": { "Project": [] } @@ -21344,34 +21042,137 @@ ] } }, - "\/documentsdb\/{databaseId}\/usage": { + "\/databases\/{databaseId}\/logs": { "get": { - "summary": "Get DocumentsDB usage stats", - "operationId": "documentsDBGetUsage", + "summary": "List database logs", + "operationId": "databasesListLogs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "documentsDB" + "databases" + ], + "description": "Get the database activity logs list by its unique ID.", + "responses": { + "200": { + "description": "Logs List", + "schema": { + "$ref": "#\/definitions\/logList" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "listLogs", + "group": "logs", + "cookies": false, + "type": "", + "demo": "databases\/list-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-logs.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listDatabaseLogs" + }, + "methods": [ + { + "name": "listLogs", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "queries" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/logList" + } + ], + "description": "Get the database activity logs list by its unique ID.", + "demo": "databases\/list-logs.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.listDatabaseLogs" + } + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "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). Only supported methods are limit and offset", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + } + ] + } + }, + "\/databases\/{databaseId}\/usage": { + "get": { + "summary": "Get database usage stats", + "operationId": "databasesGetUsage", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" ], "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": { "200": { - "description": "UsageDocumentsDB", + "description": "UsageDatabase", "schema": { - "$ref": "#\/definitions\/usageDocumentsDB" + "$ref": "#\/definitions\/usageDatabase" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { "method": "getUsage", "group": null, - "weight": 856, "cookies": false, "type": "", - "demo": "documentsdb\/get-usage.md", + "demo": "databases\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21381,11 +21182,15 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-database-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-database-usage.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getUsage" + }, "methods": [ { "name": "getUsage", - "namespace": "documentsDB", + "namespace": "databases", "desc": "", "auth": { "Project": [] @@ -21400,12 +21205,16 @@ "responses": [ { "code": 200, - "model": "#\/definitions\/usageDocumentsDB" + "model": "#\/definitions\/usageDatabase" } ], "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 + "demo": "databases\/get-usage.md", + "public": true, + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getUsage" + } } ], "auth": { @@ -21449,56 +21258,58 @@ ] } }, - "\/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": 943, + "group": "documentsdb", "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", @@ -21509,19 +21320,19 @@ "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": "string", - "x-example": "<SEARCH>", - "default": "", + "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" ], @@ -21529,41 +21340,43 @@ "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": 938, + "group": "documentsdb", "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": [ @@ -21573,115 +21386,101 @@ "schema": { "type": "object", "properties": { - "teamId": { + "databaseId": { "type": "string", - "description": "Team unique ID.", - "default": null, - "x-example": "<TEAM_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>" }, - "domain": { + "name": { "type": "string", - "description": "Domain name (e.g. \"example.com\").", - "default": null, - "x-example": null + "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.", + "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": "List transactions across all databases.", "responses": { "200": { - "description": "DomainPrice", + "description": "Transaction List", "schema": { - "$ref": "#\/definitions\/domainPrice" + "$ref": "#\/definitions\/transactionList" } } }, "deprecated": false, "x-appwrite": { - "method": "getPrice", - "group": null, - "weight": 941, + "method": "listTransactions", + "group": "transactions", "cookies": false, "type": "", - "demo": "domains\/get-price.md", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-transactions.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "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" ], @@ -21689,41 +21488,46 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Initiate a domain purchase by providing registrant details and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Purchase endpoint to capture the payment and finalize the purchase.", + "description": "Create a new transaction.", "responses": { "201": { - "description": "DomainPurchase", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/domainPurchase" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "createPurchase", - "group": null, - "weight": 988, + "method": "createTransaction", + "group": "transactions", "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": "billing.write", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ @@ -21733,101 +21537,84 @@ "schema": { "type": "object", "properties": { - "domain": { - "type": "string", - "description": "Fully qualified domain name to purchase (for example, example.com).", - "default": null, - "x-example": null - }, - "organizationId": { - "type": "string", - "description": "Team ID that will own the domain.", - "default": null, - "x-example": "<ORGANIZATION_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" - }, - "autoRenewal": { - "type": "boolean", - "description": "Whether the domain should renew automatically after purchase.", - "default": true, - "x-example": false - }, - "paymentMethodId": { - "type": "string", - "description": "Payment method ID to authorize and capture the purchase.", - "default": null, - "x-example": "<PAYMENT_METHOD_ID>" } - }, - "required": [ - "domain", - "organizationId", - "firstName", - "lastName", - "email", - "phone", - "billingAddressId", - "paymentMethodId" - ] + } } } ] } }, - "\/domains\/purchases\/{invoiceId}": { + "\/documentsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "documentsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTransaction", + "group": "transactions", + "cookies": false, + "type": "", + "demo": "documentsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" + } + ] + }, "patch": { - "summary": "Confirm a domain purchase", - "operationId": "domainsUpdatePurchase", + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", "consumes": [ "application\/json" ], @@ -21835,50 +21622,55 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Finalize a domain purchase initiated with Create Purchase. Verifies that any required 3D Secure authentication is complete, registers the domain, captures the payment, and provisions default DNS records. Returns a 402 error if authentication is still pending.", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { "200": { - "description": "DomainPurchase", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/domainPurchase" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePurchase", - "group": null, - "weight": 989, + "method": "updateTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "domains\/update-purchase.md", + "demo": "documentsdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "invoiceId", - "description": "Invoice ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<INVOICE_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -21887,168 +21679,142 @@ "schema": { "type": "object", "properties": { - "organizationId": { - "type": "string", - "description": "Team ID that owns the domain.", - "default": null, - "x-example": "<ORGANIZATION_ID>" + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false } - }, - "required": [ - "organizationId" - ] + } } } ] - } - }, - "\/domains\/suggestions": { - "get": { - "summary": "List domain suggestions", - "operationId": "domainsListSuggestions", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "domains" + "documentsDB" ], - "description": " List domain suggestions.", + "description": "Delete a transaction by its unique ID.", "responses": { - "200": { - "description": "Domain suggestions list", - "schema": { - "$ref": "#\/definitions\/domainSuggestionsList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listSuggestions", - "group": null, - "weight": 987, + "method": "deleteTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "domains\/list-suggestions.md", - "rate-limit": 50, + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "Session": [], + "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" - }, - { - "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" + "x-example": "<TRANSACTION_ID>", + "in": "path" } ] } }, - "\/domains\/transfers\/in": { - "post": { - "summary": "Create a domain transfer in.", - "operationId": "domainsCreateTransferIn", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/usage": { + "get": { + "summary": "Get DocumentsDB usage stats", + "operationId": "documentsDBListUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Initiate a domain transfer-in by providing an authorization code, registrant details, and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Transfer In endpoint to capture the payment and submit the transfer.", + "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": { - "201": { - "description": "DomainPurchase", + "200": { + "description": "UsageDatabases", "schema": { - "$ref": "#\/definitions\/domainPurchase" + "$ref": "#\/definitions\/usageDatabases" } } }, "deprecated": false, "x-appwrite": { - "method": "createTransferIn", + "method": "listUsage", "group": null, - "weight": 948, "cookies": false, "type": "", - "demo": "domains\/create-transfer-in.md", + "demo": "documentsdb\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.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": [] } @@ -22060,135 +21826,90 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name to transfer in.", - "default": null, - "x-example": null - }, - "organizationId": { - "type": "string", - "description": "Organization ID that this domain will belong to.", - "default": null, - "x-example": "<ORGANIZATION_ID>" - }, - "authCode": { - "type": "string", - "description": "Authorization code for the domain transfer.", - "default": null, - "x-example": "<AUTH_CODE>" - }, - "autoRenewal": { - "type": "boolean", - "description": "Whether the domain should renew automatically after transfer.", - "default": true, - "x-example": false - }, - "paymentMethodId": { - "type": "string", - "description": "Payment method ID to authorize and capture the transfer.", - "default": null, - "x-example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "domain", - "organizationId", - "authCode", - "paymentMethodId" - ] - } + "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\/transfers\/in\/{invoiceId}": { - "patch": { - "summary": "Confirm a domain transfer in", - "operationId": "domainsUpdateTransferIn", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "documentsDBGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Finalize a domain transfer-in initiated with Create Transfer In. Verifies that any required 3D Secure authentication is complete, submits the transfer with the authorization code, captures the payment, and sends a confirmation email. Returns a 402 error if authentication is still pending.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { "200": { - "description": "DomainPurchase", + "description": "Database", "schema": { - "$ref": "#\/definitions\/domainPurchase" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTransferIn", - "group": null, - "weight": 949, + "method": "get", + "group": "documentsdb", "cookies": false, "type": "", - "demo": "domains\/update-transfer-in.md", + "demo": "documentsdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.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": "invoiceId", - "description": "Invoice ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<INVOICE_ID>", + "x-example": "<DATABASE_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "organizationId": { - "type": "string", - "description": "Team ID that owns the domain.", - "default": null, - "x-example": "<ORGANIZATION_ID>" - } - }, - "required": [ - "organizationId" - ] - } } ] - } - }, - "\/domains\/transfers\/out": { - "post": { - "summary": "Create a domain transfer out.", - "operationId": "domainsCreateTransferOut", + }, + "put": { + "summary": "Update database", + "operationId": "documentsDBUpdate", "consumes": [ "application\/json" ], @@ -22196,189 +21917,227 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Initiate a domain transfer-out by generating an authorization code for the specified domain. The returned `authCode` should be provided to the gaining provider to complete the transfer. If the domain has auto-renewal enabled, it will be automatically disabled as part of this operation.", + "description": "Update a database by its unique ID.", "responses": { - "202": { - "description": "domainTransferOut", + "200": { + "description": "Database", "schema": { - "$ref": "#\/definitions\/domainTransferOut" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "createTransferOut", - "group": null, - "weight": 950, + "method": "update", + "group": "documentsdb", "cookies": false, "type": "", - "demo": "domains\/create-transfer-out.md", + "demo": "documentsdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.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": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "domainId": { + "name": { "type": "string", - "description": "Domain unique ID.", - "default": null, - "x-example": "<DOMAIN_ID>" + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "organizationId": { - "type": "string", - "description": "Organization ID that this domain belongs to.", - "default": null, - "x-example": "<ORGANIZATION_ID>" + "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": [ - "domainId", - "organizationId" + "name" ] } } ] - } - }, - "\/domains\/{domainId}": { - "get": { - "summary": "Get a single domain by its unique ID.", - "operationId": "domainsGet", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete database", + "operationId": "documentsDBDelete", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "domains" + "documentsDB" ], - "description": " Get a domain 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": { - "200": { - "description": "Domain", - "schema": { - "$ref": "#\/definitions\/domain" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 940, + "method": "delete", + "group": "documentsdb", "cookies": false, "type": "", - "demo": "domains\/get.md", + "demo": "documentsdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "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" } ] - }, - "delete": { - "summary": "Delete a domain by its unique ID.", - "operationId": "domainsDelete", - "consumes": [ - "application\/json" - ], + } + }, + "\/documentsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "documentsDBListCollections", + "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": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Collections List", + "schema": { + "$ref": "#\/definitions\/collectionList" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": null, - "weight": 939, + "method": "listCollections", + "group": "collections", "cookies": false, "type": "", - "demo": "domains\/delete.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" } ] - } - }, - "\/domains\/{domainId}\/auto-renewal": { - "patch": { - "summary": "Update domain auto-renewal setting.", - "operationId": "domainsUpdateAutoRenewal", + }, + "post": { + "summary": "Create collection", + "operationId": "documentsDBCreateCollection", "consumes": [ "application\/json" ], @@ -22386,50 +22145,52 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Enable or disable auto-renewal for a 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": { - "200": { - "description": "Domain", + "201": { + "description": "Collection", "schema": { - "$ref": "#\/definitions\/domain" + "$ref": "#\/definitions\/collection" } } }, "deprecated": false, "x-appwrite": { - "method": "updateAutoRenewal", - "group": null, - "weight": 944, + "method": "createCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "domains\/update-auto-renewal.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" }, { @@ -22438,257 +22199,419 @@ "schema": { "type": "object", "properties": { - "autoRenewal": { + "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>" + }, + "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\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "documentSecurity": { "type": "boolean", - "description": "Whether the domain should renew automatically.", - "default": null, + "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": [ - "autoRenewal" + "collectionId", + "name" ] } } ] } }, - "\/domains\/{domainId}\/nameservers": { - "patch": { - "summary": "Verify which NS records are used and update the domain accordingly.", - "operationId": "domainsUpdateNameservers", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "documentsDBGetCollection", + "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 collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", "responses": { "200": { - "description": "Domain", + "description": "Collection", "schema": { - "$ref": "#\/definitions\/domain" + "$ref": "#\/definitions\/collection" } } }, "deprecated": false, "x-appwrite": { - "method": "updateNameservers", - "group": null, - "weight": 945, + "method": "getCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "domains\/update-nameservers.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" } ] - } - }, - "\/domains\/{domainId}\/presets\/google-workspace": { - "get": { - "summary": "Get Google Workspace preset (Records)", - "operationId": "domainsGetPresetGoogleWorkspace", - "consumes": [], + }, + "put": { + "summary": "Update collection", + "operationId": "documentsDBUpdateCollection", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List Google Workspace DNS records.", + "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": "getPresetGoogleWorkspace", - "group": null, - "weight": 976, + "method": "updateCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "domains\/get-preset-google-workspace.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.", + "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).", + "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 + }, + "purge": { + "type": "boolean", + "description": "When true, purge all cached list responses for this collection as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "default": false, + "x-example": false + } + }, + "required": [ + "name" + ] + } } ] }, - "post": { - "summary": "Create Google Workspace preset (Records)", - "operationId": "domainsCreatePresetGoogleWorkspace", + "delete": { + "summary": "Delete collection", + "operationId": "documentsDBDeleteCollection", "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 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": "createPresetGoogleWorkspace", - "group": null, - "weight": 975, + "method": "deleteCollection", + "group": "collections", "cookies": false, "type": "", - "demo": "domains\/create-preset-google-workspace.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" } ] } }, - "\/domains\/{domainId}\/presets\/icloud": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { - "summary": "Get iCloud preset (Records)", - "operationId": "domainsGetPresetICloud", + "summary": "List documents", + "operationId": "documentsDBListDocuments", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List iCloud 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", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "getPresetICloud", - "group": null, - "weight": 986, + "method": "listDocuments", + "group": "documents", "cookies": false, "type": "", - "demo": "domains\/get-preset-i-cloud.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": [], + "Session": [], + "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" } ] }, "post": { - "summary": "Create iCloud preset (Records)", - "operationId": "domainsCreatePresetICloud", + "summary": "Create document", + "operationId": "documentsDBCreateDocument", "consumes": [ "application\/json" ], @@ -22696,115 +22619,172 @@ "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 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": "createPresetICloud", - "group": null, - "weight": 985, + "method": "createDocument", + "group": "documents", "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", + "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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "type": "string", - "x-example": "<DOMAIN_ID>", - "in": "path" - } - ] - } - }, - "\/domains\/{domainId}\/presets\/mailgun": { - "get": { - "summary": "Get Mailgun preset (Records)", - "operationId": "domainsGetPresetMailgun", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "domains" - ], - "description": " List Mailgun DNS records.", - "responses": { - "201": { - "description": "DNS records list", - "schema": { - "$ref": "#\/definitions\/dnsRecordsList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getPresetMailgun", - "group": null, - "weight": 978, - "cookies": false, - "type": "", - "demo": "domains\/get-preset-mailgun.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", - "platforms": [ - "console" + "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 + } ], - "packaging": false, - "public": true, "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Session": [], + "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).", + "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.", + "x-example": "<TRANSACTION_ID>" + } + } + } } ] }, - "post": { - "summary": "Create Mailgun preset (Records)", - "operationId": "domainsCreatePresetMailgun", + "put": { + "summary": "Upsert documents", + "operationId": "documentsDBUpsertDocuments", "consumes": [ "application\/json" ], @@ -22812,115 +22792,219 @@ "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": "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": "createPresetMailgun", - "group": null, - "weight": 977, + "method": "upsertDocuments", + "group": "documents", "cookies": false, "type": "", - "demo": "domains\/create-preset-mailgun.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.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } } ] - } - }, - "\/domains\/{domainId}\/presets\/outlook": { - "get": { - "summary": "Get Outlook preset (Records)", - "operationId": "domainsGetPresetOutlook", - "consumes": [], + }, + "patch": { + "summary": "Update documents", + "operationId": "documentsDBUpdateDocuments", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List Outlook 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": "getPresetOutlook", - "group": null, - "weight": 984, + "method": "updateDocuments", + "group": "documents", "cookies": false, "type": "", - "demo": "domains\/get-preset-outlook.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.", + "x-example": "<TRANSACTION_ID>" + } + } + } } ] }, - "post": { - "summary": "Create Outlook preset (Records)", - "operationId": "domainsCreatePresetOutlook", + "delete": { + "summary": "Delete documents", + "operationId": "documentsDBDeleteDocuments", "consumes": [ "application\/json" ], @@ -22928,115 +23012,189 @@ "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": "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": "createPresetOutlook", - "group": null, - "weight": 983, + "method": "deleteDocuments", + "group": "documents", "cookies": false, "type": "", - "demo": "domains\/create-preset-outlook.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.", + "x-example": "<TRANSACTION_ID>" + } + } + } } ] } }, - "\/domains\/{domainId}\/presets\/proton-mail": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { "get": { - "summary": "Get ProtonMail preset (Records)", - "operationId": "domainsGetPresetProtonMail", + "summary": "Get document", + "operationId": "documentsDBGetDocument", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List ProtonMail DNS records.", + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Document", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "getPresetProtonMail", - "group": null, - "weight": 982, + "method": "getDocument", + "group": "documents", "cookies": false, "type": "", - "demo": "domains\/get-preset-proton-mail.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" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-document.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Session": [], + "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" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query 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" } ] }, - "post": { - "summary": "Create ProtonMail preset (Records)", - "operationId": "domainsCreatePresetProtonMail", + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", "consumes": [ "application\/json" ], @@ -23044,245 +23202,450 @@ "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 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": "DNS records list", + "description": "Document", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "createPresetProtonMail", - "group": null, - "weight": 981, + "method": "upsertDocument", + "group": "documents", "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-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, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] + "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": [], + "Session": [], + "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" + }, + { + "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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } } ] - } - }, - "\/domains\/{domainId}\/presets\/zoho": { - "get": { - "summary": "Get Zoho preset (Records)", - "operationId": "domainsGetPresetZoho", - "consumes": [], + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List Zoho DNS records.", + "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": "DNS records list", + "200": { + "description": "Document", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "getPresetZoho", - "group": null, - "weight": 980, + "method": "updateDocument", + "group": "documents", "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-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": [], + "Session": [], + "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" + }, + { + "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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } } ] }, - "post": { - "summary": "Create Zoho Mail preset (Records)", - "operationId": "domainsCreatePresetZoho", + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "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": "Delete a document by its unique ID.", "responses": { - "201": { - "description": "DNS records list", - "schema": { - "$ref": "#\/definitions\/dnsRecordsList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createPresetZoho", - "group": null, - "weight": 979, + "method": "deleteDocument", + "group": "documents", "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-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": [], + "Session": [], + "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" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } } ] } }, - "\/domains\/{domainId}\/records": { - "get": { - "summary": "List DNS records for a given domain.", - "operationId": "domainsListRecords", - "consumes": [], + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", + "consumes": [ + "application\/json" + ], "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": "Decrement a specific column of a row by a given value.", "responses": { "200": { - "description": "DNS records list", + "description": "Document", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "listRecords", - "group": null, - "weight": 974, + "method": "decrementDocumentAttribute", + "group": "documents", "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\/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": [], + "Session": [], + "JWT": [], + "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, - "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": "domainId", - "description": "Domain 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": "<DOMAIN_ID>", "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.", + "x-example": null, + "format": "float" + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } } ] } }, - "\/domains\/{domainId}\/records\/a": { - "post": { - "summary": "Create a new A record for the given domain.", - "operationId": "domainsCreateRecordA", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", "consumes": [ "application\/json" ], @@ -23290,50 +23653,78 @@ "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": "Increment 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": "createRecordA", - "group": null, - "weight": 952, + "method": "incrementDocumentAttribute", + "group": "documents", "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\/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": [], + "Session": [], + "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" }, { @@ -23342,153 +23733,121 @@ "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 + "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.", - "default": null, - "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 explaining what this record is for.", - "default": "", - "x-example": "<COMMENT>" + "description": "Transaction ID for staging the operation.", + "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", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "documentsDBListIndexes", + "consumes": [], "produces": [ "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": "List indexes in the collection.", "responses": { "200": { - "description": "DNSRecord", + "description": "Indexes List", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/indexList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordA", - "group": null, - "weight": 953, + "method": "listIndexes", + "group": "indexes", "cookies": false, "type": "", - "demo": "domains\/update-record-a.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": "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": "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" - ] - } + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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\/aaaa": { + }, "post": { - "summary": "Create a new AAAA record for the given domain.", - "operationId": "domainsCreateRecordAAAA", + "summary": "Create index", + "operationId": "documentsDBCreateIndex", "consumes": [ "application\/json" ], @@ -23496,50 +23855,60 @@ "application\/json" ], "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": "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", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/index" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordAAAA", - "group": null, - "weight": 954, + "method": "createIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "domains\/create-record-aaaa.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": "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" }, { @@ -23548,287 +23917,246 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" + "description": "Index Key.", + "x-example": null }, - "value": { + "type": { "type": "string", - "description": "IPv6 address for this AAAA record.", - "default": null, - "x-example": null + "description": "Index type.", + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique" + ], + "x-enum-name": "DocumentsDBIndexType" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "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 explaining what this record is for.", - "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" + } + }, + "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\/aaaa\/{recordId}": { - "put": { - "summary": "Update an existing AAAA record for the given domain.", - "operationId": "domainsUpdateRecordAAAA", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "documentsDBGetIndex", + "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 index by ID.", "responses": { "200": { - "description": "DNSRecord", + "description": "Index", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/index" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordAAAA", - "group": null, - "weight": 955, + "method": "getIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "domains\/update-record-aaaa.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": "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": "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": "key", + "description": "Index Key.", + "required": true, + "type": "string", + "in": "path" } ] - } - }, - "\/domains\/{domainId}\/records\/alias": { - "post": { - "summary": "Create a new ALIAS record for the given domain.", - "operationId": "domainsCreateRecordAlias", + }, + "delete": { + "summary": "Delete index", + "operationId": "documentsDBDeleteIndex", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "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": "Delete an index.", "responses": { - "201": { - "description": "DNSRecord", - "schema": { - "$ref": "#\/definitions\/dnsRecord" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createRecordAlias", - "group": null, - "weight": 956, + "method": "deleteIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "domains\/create-record-alias.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": "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" - ] - } + "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\/alias\/{recordId}": { - "put": { - "summary": "Update an existing ALIAS record for the given domain.", - "operationId": "domainsUpdateRecordAlias", - "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 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": "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": "updateRecordAlias", + "method": "getCollectionUsage", "group": null, - "weight": 957, "cookies": false, "type": "", - "demo": "domains\/update-record-alias.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": [] } @@ -23840,102 +24168,107 @@ ], "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.", - "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" - ] - } + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" } ] } }, - "\/domains\/{domainId}\/records\/caa": { - "post": { - "summary": "Create a new CAA record for the given domain.", - "operationId": "domainsCreateRecordCAA", - "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 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": "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": "createRecordCAA", + "method": "getUsage", "group": null, - "weight": 958, "cookies": false, "type": "", - "demo": "domains\/create-record-caa.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": [] } @@ -23947,89 +24280,67 @@ ], "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": "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\/caa\/{recordId}": { - "put": { - "summary": "Update an existing CAA record for the given domain.", - "operationId": "domainsUpdateRecordCAA", - "consumes": [ - "application\/json" - ], + "\/domains": { + "get": { + "summary": "List domains", + "operationId": "domainsList", + "consumes": [], "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.", + "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": "updateRecordCAA", + "method": "list", "group": null, - "weight": 959, "cookies": false, "type": "", - "demo": "domains\/update-record-caa.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" ], @@ -24046,67 +24357,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.", - "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" - ] - } + "x-example": "<SEARCH>", + "default": "", + "in": "query" } ] - } - }, - "\/domains\/{domainId}\/records\/cname": { + }, "post": { - "summary": "Create a new CNAME record for the given domain.", - "operationId": "domainsCreateRecordCNAME", + "summary": "Create a new domain.", + "operationId": "domainsCreate", "consumes": [ "application\/json" ], @@ -24116,23 +24391,22 @@ "tags": [ "domains" ], - "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": "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": "createRecordCNAME", + "method": "create", "group": null, - "weight": 960, "cookies": false, "type": "", - "demo": "domains\/create-record-cname.md", + "demo": "domains\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -24152,90 +24426,63 @@ } ], "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": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { + "teamId": { "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" + "description": "Team unique ID.", + "x-example": "<TEAM_ID>" }, - "comment": { + "domain": { "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "description": "Domain name (e.g. \"example.com\").", + "x-example": null } }, "required": [ - "name", - "value", - "ttl" + "teamId", + "domain" ] } } ] } }, - "\/domains\/{domainId}\/records\/cname\/{recordId}": { - "put": { - "summary": "Update an existing CNAME record for the given domain.", - "operationId": "domainsUpdateRecordCNAME", - "consumes": [ - "application\/json" - ], + "\/domains\/price": { + "get": { + "summary": "Get domain price", + "operationId": "domainsGetPrice", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "domains" ], - "description": " Update an existing CNAME record for the given domain.", + "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": "updateRecordCNAME", + "method": "getPrice", "group": null, - "weight": 961, "cookies": false, "type": "", - "demo": "domains\/update-record-cname.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" ], @@ -24252,67 +24499,44 @@ ], "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": "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": "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": "DomainRegistrationType", + "default": "new", + "in": "query" } ] } }, - "\/domains\/{domainId}\/records\/https": { + "\/domains\/purchases": { "post": { - "summary": "Create a new HTTPS record for the given domain.", - "operationId": "domainsCreateRecordHTTPS", + "summary": "Create a domain purchase", + "operationId": "domainsCreatePurchase", "consumes": [ "application\/json" ], @@ -24322,27 +24546,26 @@ "tags": [ "domains" ], - "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": "Initiate a domain purchase by providing registrant details and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Purchase endpoint to capture the payment and finalize the purchase.", "responses": { "201": { - "description": "DNSRecord", + "description": "DomainPurchase", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domainPurchase" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordHTTPS", + "method": "createPurchase", "group": null, - "weight": 962, "cookies": false, "type": "", - "demo": "domains\/create-record-https.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" ], @@ -24358,60 +24581,99 @@ } ], "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).", - "default": null, - "x-example": "<NAME>" + "description": "Fully qualified domain name to purchase (for example, example.com).", + "x-example": null }, - "value": { + "organizationId": { "type": "string", - "description": "Target for the HTTPS record.", - "default": null, - "x-example": "<VALUE>" + "description": "Team ID that will own the domain.", + "x-example": "<ORGANIZATION_ID>" }, - "ttl": { + "firstName": { + "type": "string", + "description": "Registrant first name used for domain registration.", + "x-example": "<FIRST_NAME>" + }, + "lastName": { + "type": "string", + "description": "Registrant last name used for domain registration.", + "x-example": "<LAST_NAME>" + }, + "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": "<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": { "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, + "description": "Registration term in years (1-10).", + "default": 1, "x-example": 1, "format": "int32" }, - "comment": { + "autoRenewal": { + "type": "boolean", + "description": "Whether the domain should renew automatically after purchase.", + "default": true, + "x-example": false + }, + "paymentMethodId": { "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "description": "Payment method ID to authorize and capture the purchase.", + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "name", - "value", - "ttl" + "domain", + "organizationId", + "firstName", + "lastName", + "email", + "phone", + "billingAddressId", + "paymentMethodId" ] } } ] } }, - "\/domains\/{domainId}\/records\/https\/{recordId}": { - "put": { - "summary": "Update an existing HTTPS record for the given domain.", - "operationId": "domainsUpdateRecordHTTPS", + "\/domains\/purchases\/{invoiceId}": { + "patch": { + "summary": "Confirm a domain purchase", + "operationId": "domainsUpdatePurchase", "consumes": [ "application\/json" ], @@ -24421,27 +24683,26 @@ "tags": [ "domains" ], - "description": "Update an existing HTTPS record for the given domain. This endpoint allows you to modify \nthe properties of an HTTPS record associated with your domain, including the name (subdomain), \ntarget value, TTL, and optional comment.", + "description": "Finalize a domain purchase initiated with Create Purchase. Verifies that any required 3D Secure authentication is complete, registers the domain, captures the payment, and provisions default DNS records. Returns a 402 error if authentication is still pending.", "responses": { "200": { - "description": "DNSRecord", + "description": "DomainPurchase", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domainPurchase" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordHTTPS", + "method": "updatePurchase", "group": null, - "weight": 963, "cookies": false, "type": "", - "demo": "domains\/update-record-https.md", + "demo": "domains\/update-purchase.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "billing.write", "platforms": [ "console" ], @@ -24458,19 +24719,11 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "type": "string", - "x-example": "<DOMAIN_ID>", - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "invoiceId", + "description": "Invoice ID.", "required": true, "type": "string", - "x-example": "<RECORD_ID>", + "x-example": "<INVOICE_ID>", "in": "path" }, { @@ -24479,76 +24732,51 @@ "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": { + "organizationId": { "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "description": "Team ID that owns the domain.", + "x-example": "<ORGANIZATION_ID>" } }, "required": [ - "name", - "value", - "ttl" + "organizationId" ] } } ] } }, - "\/domains\/{domainId}\/records\/mx": { - "post": { - "summary": "Create a new MX record for the given domain.", - "operationId": "domainsCreateRecordMX", - "consumes": [ - "application\/json" - ], + "\/domains\/suggestions": { + "get": { + "summary": "List domain suggestions", + "operationId": "domainsListSuggestions", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "domains" ], - "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": "List domain suggestions.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Domain suggestions list", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domainSuggestionsList" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordMX", + "method": "listSuggestions", "group": null, - "weight": 964, "cookies": false, "type": "", - "demo": "domains\/create-record-mx.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" ], @@ -24565,67 +24793,69 @@ ], "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": "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": "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": "DomainSuggestionType", + "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" } ] } }, - "\/domains\/{domainId}\/records\/mx\/{recordId}": { - "put": { - "summary": "Update an existing MX record for the given domain.", - "operationId": "domainsUpdateRecordMX", + "\/domains\/transfers\/in": { + "post": { + "summary": "Create a domain transfer in.", + "operationId": "domainsCreateTransferIn", "consumes": [ "application\/json" ], @@ -24635,27 +24865,26 @@ "tags": [ "domains" ], - "description": " Update an existing MX record for the given domain.", + "description": "Initiate a domain transfer-in by providing an authorization code, registrant details, and a payment method. Authorizes the payment and returns a `clientSecret`. If 3D Secure is required, use the `clientSecret` on the client to complete the authentication challenge. Once authentication is complete (or if none is needed), call the Update Transfer In endpoint to capture the payment and submit the transfer.", "responses": { - "200": { - "description": "DNSRecord", + "201": { + "description": "DomainPurchase", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domainPurchase" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordMX", + "method": "createTransferIn", "group": null, - "weight": 965, "cookies": false, "type": "", - "demo": "domains\/update-record-mx.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" ], @@ -24671,76 +24900,54 @@ } ], "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": { + "domain": { "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" + "description": "Domain name to transfer in.", + "x-example": null }, - "value": { + "organizationId": { "type": "string", - "description": "Mail server domain for this MX record.", - "default": null, - "x-example": "<VALUE>" + "description": "Organization ID that this domain will belong to.", + "x-example": "<ORGANIZATION_ID>" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "x-example": 1, - "format": "int32" + "authCode": { + "type": "string", + "description": "Authorization code for the domain transfer.", + "x-example": "<AUTH_CODE>" }, - "priority": { - "type": "integer", - "description": "MX priority.", - "default": null, - "x-example": null, - "format": "int32" + "autoRenewal": { + "type": "boolean", + "description": "Whether the domain should renew automatically after transfer.", + "default": true, + "x-example": false }, - "comment": { + "paymentMethodId": { "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "description": "Payment method ID to authorize and capture the transfer.", + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "name", - "value", - "ttl", - "priority" + "domain", + "organizationId", + "authCode", + "paymentMethodId" ] } } ] } }, - "\/domains\/{domainId}\/records\/ns": { - "post": { - "summary": "Create a new NS record for the given domain.", - "operationId": "domainsCreateRecordNS", + "\/domains\/transfers\/in\/{invoiceId}": { + "patch": { + "summary": "Confirm a domain transfer in", + "operationId": "domainsUpdateTransferIn", "consumes": [ "application\/json" ], @@ -24750,27 +24957,26 @@ "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": "Finalize a domain transfer-in initiated with Create Transfer In. Verifies that any required 3D Secure authentication is complete, submits the transfer with the authorization code, captures the payment, and sends a confirmation email. Returns a 402 error if authentication is still pending.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "DomainPurchase", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domainPurchase" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordNS", + "method": "updateTransferIn", "group": null, - "weight": 966, "cookies": false, "type": "", - "demo": "domains\/create-record-ns.md", + "demo": "domains\/update-transfer-in.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "billing.write", "platforms": [ "console" ], @@ -24787,11 +24993,11 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "invoiceId", + "description": "Invoice ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<INVOICE_ID>", "in": "path" }, { @@ -24800,46 +25006,24 @@ "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": { + "organizationId": { "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "description": "Team ID that owns the domain.", + "x-example": "<ORGANIZATION_ID>" } }, "required": [ - "name", - "value", - "ttl" + "organizationId" ] } } ] } }, - "\/domains\/{domainId}\/records\/ns\/{recordId}": { - "put": { - "summary": "Update an existing NS record for the given domain.", - "operationId": "domainsUpdateRecordNS", + "\/domains\/transfers\/out": { + "post": { + "summary": "Create a domain transfer out.", + "operationId": "domainsCreateTransferOut", "consumes": [ "application\/json" ], @@ -24849,27 +25033,26 @@ "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": "Initiate a domain transfer-out by generating an authorization code for the specified domain. The returned `authCode` should be provided to the gaining provider to complete the transfer. If the domain has auto-renewal enabled, it will be automatically disabled as part of this operation.", "responses": { - "200": { - "description": "DNSRecord", + "202": { + "description": "domainTransferOut", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domainTransferOut" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordNS", + "method": "createTransferOut", "group": null, - "weight": 967, "cookies": false, "type": "", - "demo": "domains\/update-record-ns.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" ], @@ -24885,98 +25068,63 @@ } ], "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": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { + "domainId": { "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" + "description": "Domain unique ID.", + "x-example": "<DOMAIN_ID>" }, - "comment": { + "organizationId": { "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "description": "Organization ID that this domain belongs to.", + "x-example": "<ORGANIZATION_ID>" } }, "required": [ - "name", - "value", - "ttl" + "domainId", + "organizationId" ] } } ] } }, - "\/domains\/{domainId}\/records\/srv": { - "post": { - "summary": "Create a new SRV record for the given domain.", - "operationId": "domainsCreateRecordSRV", - "consumes": [ - "application\/json" - ], + "\/domains\/{domainId}": { + "get": { + "summary": "Get a single domain by its unique ID.", + "operationId": "domainsGet", + "consumes": [], "produces": [ "application\/json" ], "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": "Get a domain by its unique ID.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Domain", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domain" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordSRV", + "method": "get", "group": null, - "weight": 968, "cookies": false, "type": "", - "demo": "domains\/create-record-srv.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" ], @@ -24999,77 +25147,12 @@ "type": "string", "x-example": "<DOMAIN_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" - ] - } } ] - } - }, - "\/domains\/{domainId}\/records\/srv\/{recordId}": { - "put": { - "summary": "Update an existing SRV record for the given domain.", - "operationId": "domainsUpdateRecordSRV", + }, + "delete": { + "summary": "Delete a domain by its unique ID.", + "operationId": "domainsDelete", "consumes": [ "application\/json" ], @@ -25079,23 +25162,19 @@ "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": "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": { - "200": { - "description": "DNSRecord", - "schema": { - "$ref": "#\/definitions\/dnsRecord" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordSRV", + "method": "delete", "group": null, - "weight": 969, "cookies": false, "type": "", - "demo": "domains\/update-record-srv.md", + "demo": "domains\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -25122,85 +25201,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" - }, - { - "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" - ] - } } ] } }, - "\/domains\/{domainId}\/records\/txt": { - "post": { - "summary": "Create a new TXT record for the given domain.", - "operationId": "domainsCreateRecordTXT", + "\/domains\/{domainId}\/auto-renewal": { + "patch": { + "summary": "Update domain auto-renewal setting.", + "operationId": "domainsUpdateAutoRenewal", "consumes": [ "application\/json" ], @@ -25210,23 +25218,22 @@ "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": "Enable or disable auto-renewal for a domain.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Domain", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domain" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordTXT", + "method": "updateAutoRenewal", "group": null, - "weight": 970, "cookies": false, "type": "", - "demo": "domains\/create-record-txt.md", + "demo": "domains\/update-auto-renewal.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -25260,45 +25267,24 @@ "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>" + "autoRenewal": { + "type": "boolean", + "description": "Whether the domain should renew automatically.", + "x-example": false } }, "required": [ - "name", - "ttl" + "autoRenewal" ] } } ] } }, - "\/domains\/{domainId}\/records\/txt\/{recordId}": { - "put": { - "summary": "Update an existing TXT record for the given domain.", - "operationId": "domainsUpdateRecordTXT", + "\/domains\/{domainId}\/nameservers": { + "patch": { + "summary": "Verify which NS records are used and update the domain accordingly.", + "operationId": "domainsUpdateNameservers", "consumes": [ "application\/json" ], @@ -25308,23 +25294,22 @@ "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": "Verify which NS records are used and update the domain accordingly. This will check the domain's\nnameservers and update the domain's status based on whether the nameservers match the expected\nAppwrite nameservers.", "responses": { "200": { - "description": "DNSRecord", + "description": "Domain", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domain" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordTXT", + "method": "updateNameservers", "group": null, - "weight": 971, "cookies": false, "type": "", - "demo": "domains\/update-record-txt.md", + "demo": "domains\/update-nameservers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -25351,89 +25336,98 @@ "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", + } + ] + } + }, + "\/domains\/{domainId}\/presets\/google-workspace": { + "get": { + "summary": "Get Google Workspace preset (Records)", + "operationId": "domainsGetPresetGoogleWorkspace", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "domains" + ], + "description": "List Google Workspace DNS records.", + "responses": { + "201": { + "description": "DNS records list", "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" - ] + "$ref": "#\/definitions\/dnsRecordsList" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "getPresetGoogleWorkspace", + "group": null, + "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": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" + } ] - } - }, - "\/domains\/{domainId}\/records\/{recordId}": { - "get": { - "summary": "Get a single DNS record for a given domain by record ID.", - "operationId": "domainsGetRecord", - "consumes": [], + }, + "post": { + "summary": "Create Google Workspace preset (Records)", + "operationId": "domainsCreatePresetGoogleWorkspace", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "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": "Add Google Workspace DNS records to the domain. This will create the required MX records \nfor Google Workspace email hosting.", "responses": { - "200": { - "description": "DNSRecord", + "201": { + "description": "DNS records list", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "getRecord", + "method": "createPresetGoogleWorkspace", "group": null, - "weight": 973, "cookies": false, "type": "", - "demo": "domains\/get-record.md", + "demo": "domains\/create-preset-google-workspace.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "domains.write", "platforms": [ "console" ], @@ -25456,20 +25450,69 @@ "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, + "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": "recordId", - "description": "DNS record unique ID.", + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<RECORD_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" } ] }, - "delete": { - "summary": "Delete a DNS record for the given domain.", - "operationId": "domainsDeleteRecord", + "post": { + "summary": "Create iCloud preset (Records)", + "operationId": "domainsCreatePresetICloud", "consumes": [ "application\/json" ], @@ -25479,20 +25522,22 @@ "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 iCloud DNS records to the domain. This will create the required MX and SPF records\nfor using iCloud email services with your domain.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "DNS records list", + "schema": { + "$ref": "#\/definitions\/dnsRecordsList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteRecord", + "method": "createPresetICloud", "group": null, - "weight": 972, "cookies": false, "type": "", - "demo": "domains\/delete-record.md", + "demo": "domains\/create-preset-i-cloud.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -25519,22 +25564,69 @@ "type": "string", "x-example": "<DOMAIN_ID>", "in": "path" - }, + } + ] + } + }, + "\/domains\/{domainId}\/presets\/mailgun": { + "get": { + "summary": "Get Mailgun preset (Records)", + "operationId": "domainsGetPresetMailgun", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "domains" + ], + "description": "List Mailgun DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "schema": { + "$ref": "#\/definitions\/dnsRecordsList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getPresetMailgun", + "group": null, + "cookies": false, + "type": "", + "demo": "domains\/get-preset-mailgun.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "recordId", - "description": "DNS record unique ID.", + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<RECORD_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" } ] - } - }, - "\/domains\/{domainId}\/team": { - "patch": { - "summary": "Update domain team.", - "operationId": "domainsUpdateTeam", + }, + "post": { + "summary": "Create Mailgun preset (Records)", + "operationId": "domainsCreatePresetMailgun", "consumes": [ "application\/json" ], @@ -25544,23 +25636,22 @@ "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": "Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \nfor Mailgun in the specified domain.", "responses": { - "200": { - "description": "Domain", + "201": { + "description": "DNS records list", "schema": { - "$ref": "#\/definitions\/domain" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTeam", + "method": "createPresetMailgun", "group": null, - "weight": 947, "cookies": false, "type": "", - "demo": "domains\/update-team.md", + "demo": "domains\/create-preset-mailgun.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -25587,32 +25678,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}\/transfers\/status": { + "\/domains\/{domainId}\/presets\/outlook": { "get": { - "summary": "Get domain transfer status.", - "operationId": "domainsGetTransferStatus", + "summary": "Get Outlook preset (Records)", + "operationId": "domainsGetPresetOutlook", "consumes": [], "produces": [ "application\/json" @@ -25620,27 +25693,83 @@ "tags": [ "domains" ], - "description": " Retrieve the current transfer status for a domain. Returns the status, an optional reason, and a timestamp of the last status change.", + "description": "List Outlook DNS records.", "responses": { - "200": { - "description": "domainTransferStatus", + "201": { + "description": "DNS records list", "schema": { - "$ref": "#\/definitions\/domainTransferStatus" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "getTransferStatus", + "method": "getPresetOutlook", "group": null, - "weight": 951, "cookies": false, "type": "", - "demo": "domains\/get-transfer-status.md", + "demo": "domains\/get-preset-outlook.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "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\nfor 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, + "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" ], @@ -25667,38 +25796,37 @@ ] } }, - "\/domains\/{domainId}\/zone": { + "\/domains\/{domainId}\/presets\/proton-mail": { "get": { - "summary": "Retrieve the DNS zone file for the given domain.", - "operationId": "domainsGetZone", + "summary": "Get ProtonMail preset (Records)", + "operationId": "domainsGetPresetProtonMail", "consumes": [], "produces": [ - "text\/plain" + "application\/json" ], "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 ProtonMail DNS records.", "responses": { - "200": { - "description": "Text", + "201": { + "description": "DNS records list", "schema": { - "type": "string" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "getZone", + "method": "getPresetProtonMail", "group": null, - "weight": 942, "cookies": false, "type": "", - "demo": "domains\/get-zone.md", + "demo": "domains\/get-preset-proton-mail.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "domains.write", "platforms": [ "console" ], @@ -25724,9 +25852,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 ProtonMail preset (Records)", + "operationId": "domainsCreatePresetProtonMail", "consumes": [ "application\/json" ], @@ -25736,23 +25864,22 @@ "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 ProtonMail DNS records to the domain. This will create the required MX records\nfor using ProtonMail with your custom domain.", "responses": { "201": { - "description": "Domain", + "description": "DNS records list", "schema": { - "$ref": "#\/definitions\/domain" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateZone", + "method": "createPresetProtonMail", "group": null, - "weight": 946, "cookies": false, "type": "", - "demo": "domains\/update-zone.md", + "demo": "domains\/create-preset-proton-mail.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -25779,63 +25906,43 @@ "type": "string", "x-example": "<DOMAIN_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "DNS zone file content as a string.", - "default": null, - "x-example": "<CONTENT>" - } - }, - "required": [ - "content" - ] - } } ] } }, - "\/functions": { + "\/domains\/{domainId}\/presets\/zoho": { "get": { - "summary": "List functions", - "operationId": "functionsList", + "summary": "Get Zoho preset (Records)", + "operationId": "domainsGetPresetZoho", "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 Zoho 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": 425, + "method": "getPresetZoho", + "group": null, "cookies": false, "type": "", - "demo": "functions\/list.md", + "demo": "domains\/get-preset-zoho.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, @@ -25845,46 +25952,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 Zoho Mail preset (Records)", + "operationId": "domainsCreatePresetZoho", "consumes": [ "application\/json" ], @@ -25892,32 +25976,30 @@ "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 Zoho Mail DNS records to the domain. This will create the required MX records\nfor setting up Zoho Mail on your domain.", "responses": { "201": { - "description": "Function", + "description": "DNS records list", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "functions", - "weight": 921, + "method": "createPresetZoho", + "group": null, "cookies": false, "type": "", - "demo": "functions\/create.md", + "demo": "domains\/create-preset-zoho.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, @@ -25927,388 +26009,54 @@ }, "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}\/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\nassociated with your domain.", + "responses": { + "200": { + "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", - "dart-3.11", - "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", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41" - ], - "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": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "templates.read", - "templates.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read", - "usage.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>" - }, - "buildSpecification": { - "type": "string", - "description": "Build specification for the function deployments.", - "default": {}, - "x-example": null - }, - "runtimeSpecification": { - "type": "string", - "description": "Runtime specification for the function executions.", - "default": {}, - "x-example": null - }, - "deploymentRetention": { - "type": "integer", - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "default": 0, - "x-example": 0, - "format": "int32" - } - }, - "required": [ - "functionId", - "name", - "runtime" - ] - } - } - ] - } - }, - "\/functions\/runtimes": { - "get": { - "summary": "List runtimes", - "operationId": "functionsListRuntimes", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "functions" - ], - "description": "Get a list of all runtimes that are currently active on your instance.", - "responses": { - "200": { - "description": "Runtimes List", - "schema": { - "$ref": "#\/definitions\/runtimeList" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "listRuntimes", - "group": "runtimes", - "weight": 427, + "method": "listRecords", + "group": null, "cookies": false, "type": "", - "demo": "functions\/list-runtimes.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", - "server" + "console" ], "packaging": false, "public": true, @@ -26318,46 +26066,67 @@ }, "security": [ { - "Project": [], - "Key": [] + "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" + }, + "default": [], + "in": "query" + }, + { + "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": [], + "\/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": "List allowed function specifications for this instance.", + "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": "Specifications List", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/specificationList" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", - "group": "runtimes", - "weight": 428, + "method": "createRecordA", + "group": null, "cookies": false, "type": "", - "demo": "functions\/list-specifications.md", + "demo": "domains\/create-record-a.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "server", "console" ], "packaging": false, @@ -26368,44 +26137,90 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "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": { + "type": "string", + "description": "Record name (subdomain).", + "x-example": "<NAME>" + }, + "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.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/templates": { - "get": { - "summary": "List templates", - "operationId": "functionsListTemplates", - "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": "List available function templates. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", + "description": "Update an existing A record for the given domain. This endpoint allows you to modify \nthe properties of an A record including its name (subdomain), IPv4 address, TTL, \nand optional comment.", "responses": { "200": { - "description": "Function Templates List", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/templateFunctionList" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "listTemplates", - "group": "templates", - "weight": 451, + "method": "updateRecordA", + "group": null, "cookies": false, "type": "", - "demo": "functions\/list-templates.md", + "demo": "domains\/update-record-a.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "domains.write", "platforms": [ "console" ], @@ -26422,200 +26237,93 @@ ], "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", - "dart-3.11", - "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", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41" - ], - "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, - "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": "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": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" }, { - "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": "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).", + "x-example": "<NAME>" + }, + "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.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/templates\/{templateId}": { - "get": { - "summary": "Get function template", - "operationId": "functionsGetTemplate", - "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 template using ID. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", + "description": "Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \nto your domain. The record will be used to point a hostname to an IPv6 address.", "responses": { - "200": { - "description": "Template Function", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/templateFunction" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "getTemplate", - "group": "templates", - "weight": 450, + "method": "createRecordAAAA", + "group": null, "cookies": false, "type": "", - "demo": "functions\/get-template.md", + "demo": "domains\/create-record-aaaa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "domains.write", "platforms": [ "console" ], @@ -26632,48 +26340,85 @@ ], "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).", + "x-example": "<NAME>" + }, + "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.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/usage": { - "get": { - "summary": "Get functions usage", - "operationId": "functionsListUsage", - "consumes": [], + "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { + "put": { + "summary": "Update an existing AAAA record for the given domain.", + "operationId": "domainsUpdateRecordAAAA", + "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 AAAA record for the given domain. This endpoint allows you to modify\nthe properties of an existing AAAA record, including its name (subdomain), IPv6 address,\nTTL, and optional comment.", "responses": { "200": { - "description": "UsageFunctions", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/usageFunctions" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "listUsage", + "method": "updateRecordAAAA", "group": null, - "weight": 444, "cookies": false, "type": "", - "demo": "functions\/list-usage.md", + "demo": "domains\/update-record-aaaa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ "console" ], @@ -26690,63 +26435,95 @@ ], "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).", + "x-example": "<NAME>" + }, + "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 for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/{functionId}": { - "get": { - "summary": "Get function", - "operationId": "functionsGet", - "consumes": [], + "\/domains\/{domainId}\/records\/alias": { + "post": { + "summary": "Create a new ALIAS record for the given domain.", + "operationId": "domainsCreateRecordAlias", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get 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 \nto another domain name that will serve as an alias. This is particularly useful when you want to \nmap your domain to a target domain that may change its IP address.", "responses": { - "200": { - "description": "Function", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "functions", - "weight": 423, + "method": "createRecordAlias", + "group": null, "cookies": false, "type": "", - "demo": "functions\/get.md", + "demo": "domains\/create-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, @@ -26756,24 +26533,61 @@ }, "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.", + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Target domain for this ALIAS record.", + "x-example": "<VALUE>" + }, + "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.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] - }, + } + }, + "\/domains\/{domainId}\/records\/alias\/{recordId}": { "put": { - "summary": "Update function", - "operationId": "functionsUpdate", + "summary": "Update an existing ALIAS record for the given domain.", + "operationId": "domainsUpdateRecordAlias", "consumes": [ "application\/json" ], @@ -26781,32 +26595,30 @@ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Update function by its unique ID.", + "description": "Update an existing ALIAS record for the specified domain. This endpoint allows you to modify\nthe properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \nThe ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\nIt provides a way to map one domain name to another.", "responses": { "200": { - "description": "Function", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "functions", - "weight": 922, + "method": "updateRecordAlias", + "group": null, "cookies": false, "type": "", - "demo": "functions\/update.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, @@ -26816,17 +26628,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" }, { @@ -26837,392 +26656,41 @@ "properties": { "name": { "type": "string", - "description": "Function name. Max length: 128 chars.", - "default": null, + "description": "Record name.", "x-example": "<NAME>" }, - "runtime": { + "value": { "type": "string", - "description": "Execution runtime.", + "description": "Target domain for this ALIAS record.", + "x-example": "<VALUE>" + }, + "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.", "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", - "dart-3.11", - "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", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41" - ], - "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": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "templates.read", - "templates.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read", - "usage.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>" - }, - "buildSpecification": { - "type": "string", - "description": "Build specification for the function deployments.", - "default": {}, - "x-example": null - }, - "runtimeSpecification": { - "type": "string", - "description": "Runtime specification for the function executions.", - "default": {}, - "x-example": null - }, - "deploymentRetention": { - "type": "integer", - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "default": 0, - "x-example": 0, - "format": "int32" + "x-example": "<COMMENT>" } }, "required": [ - "name" + "name", + "value", + "ttl" ] } } ] - }, - "delete": { - "summary": "Delete function", - "operationId": "functionsDelete", - "consumes": [ - "application\/json" - ], - "produces": [], - "tags": [ - "functions" - ], - "description": "Delete a function by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "delete", - "group": "functions", - "weight": 426, - "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, - "type": "string", - "x-example": "<FUNCTION_ID>", - "in": "path" - } - ] } }, - "\/functions\/{functionId}\/deployment": { - "patch": { - "summary": "Update function's deployment", - "operationId": "functionsUpdateFunctionDeployment", + "\/domains\/{domainId}\/records\/caa": { + "post": { + "summary": "Create a new CAA record for the given domain.", + "operationId": "domainsCreateRecordCAA", "consumes": [ "application\/json" ], @@ -27230,32 +26698,30 @@ "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": "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": "Function", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "updateFunctionDeployment", - "group": "functions", - "weight": 431, + "method": "createRecordCAA", + "group": null, "cookies": false, "type": "", - "demo": "functions\/update-function-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, @@ -27265,17 +26731,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" }, { @@ -27284,56 +26749,74 @@ "schema": { "type": "object", "properties": { - "deploymentId": { + "name": { "type": "string", - "description": "Deployment ID.", - "default": null, - "x-example": "<DEPLOYMENT_ID>" + "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.", + "default": "", + "x-example": "<COMMENT>" } }, "required": [ - "deploymentId" + "name", + "value", + "ttl" ] } } ] } }, - "\/functions\/{functionId}\/deployments": { - "get": { - "summary": "List deployments", - "operationId": "functionsListDeployments", - "consumes": [], + "\/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": [ - "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 CAA record for the given domain. A CAA (Certification Authority Authorization) \nrecord is used to specify which certificate authorities (CAs) are authorized to issue certificates \nfor a domain.", "responses": { "200": { - "description": "Deployments List", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deploymentList" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 432, + "method": "updateRecordCAA", + "group": null, "cookies": false, "type": "", - "demo": "functions\/list-deployments.md", + "demo": "domains\/update-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, @@ -27343,89 +26826,102 @@ }, "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, + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "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.", + "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.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] - }, + } + }, + "\/domains\/{domainId}\/records\/cname": { "post": { - "summary": "Create deployment", - "operationId": "functionsCreateDeployment", + "summary": "Create a new CNAME record for the given domain.", + "operationId": "domainsCreateRecordCNAME", "consumes": [ - "multipart\/form-data" + "application\/json" ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "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": "Create a new CNAME record for the given domain.\n \nA CNAME record maps a subdomain to another domain name, allowing you to create aliases \nfor your domain. For example, you can create a CNAME record to point 'blog.example.com' \nto 'example.wordpress.com'.", "responses": { - "202": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "createDeployment", - "group": "deployments", - "weight": 429, + "method": "createRecordCNAME", + "group": null, "cookies": false, - "type": "upload", - "demo": "functions\/create-deployment.md", + "type": "", + "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": true, + "packaging": false, "public": true, "auth": { "Project": [] @@ -27433,57 +26929,61 @@ }, "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.", - "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": "Record name (subdomain).", + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Canonical target for this CNAME record.", + "x-example": "<VALUE>" + }, + "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.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/{functionId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "functionsCreateDuplicateDeployment", + "\/domains\/{domainId}\/records\/cname\/{recordId}": { + "put": { + "summary": "Update an existing CNAME record for the given domain.", + "operationId": "domainsUpdateRecordCNAME", "consumes": [ "application\/json" ], @@ -27491,32 +26991,30 @@ "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": "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": "createDuplicateDeployment", - "group": "deployments", - "weight": 437, + "method": "updateRecordCNAME", + "group": null, "cookies": false, "type": "", - "demo": "functions\/create-duplicate-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, @@ -27526,17 +27024,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" }, { @@ -27545,31 +27050,43 @@ "schema": { "type": "object", "properties": { - "deploymentId": { + "name": { "type": "string", - "description": "Deployment ID.", - "default": null, - "x-example": "<DEPLOYMENT_ID>" + "description": "Record name (subdomain).", + "x-example": "<NAME>" }, - "buildId": { + "value": { "type": "string", - "description": "Build unique ID.", + "description": "Canonical target for this CNAME record.", + "x-example": "<VALUE>" + }, + "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.", "default": "", - "x-example": "<BUILD_ID>" + "x-example": "<COMMENT>" } }, "required": [ - "deploymentId" + "name", + "value", + "ttl" ] } } ] } }, - "\/functions\/{functionId}\/deployments\/template": { + "\/domains\/{domainId}\/records\/https": { "post": { - "summary": "Create template deployment", - "operationId": "functionsCreateTemplateDeployment", + "summary": "Create a new HTTPS record for the given domain.", + "operationId": "domainsCreateRecordHTTPS", "consumes": [ "application\/json" ], @@ -27577,32 +27094,30 @@ "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": "Create a new HTTPS record for the given domain. This record is used to configure HTTPS \nsettings for your domain, enabling secure communication over SSL\/TLS.", "responses": { - "202": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 434, + "method": "createRecordHTTPS", + "group": null, "cookies": false, "type": "", - "demo": "functions\/create-template-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, @@ -27612,17 +27127,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" }, { @@ -27631,66 +27145,43 @@ "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.", - "default": null, - "x-example": "<OWNER>" + "description": "Record name (subdomain).", + "x-example": "<NAME>" }, - "rootDirectory": { + "value": { "type": "string", - "description": "Path to function code in the template repo.", - "default": null, - "x-example": "<ROOT_DIRECTORY>" + "description": "Target for the HTTPS record.", + "x-example": "<VALUE>" }, - "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": [] + "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", - "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": { - "post": { - "summary": "Create VCS deployment", - "operationId": "functionsCreateVcsDeployment", + "\/domains\/{domainId}\/records\/https\/{recordId}": { + "put": { + "summary": "Update an existing HTTPS record for the given domain.", + "operationId": "domainsUpdateRecordHTTPS", "consumes": [ "application\/json" ], @@ -27698,32 +27189,30 @@ "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": "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": { - "202": { - "description": "Deployment", + "200": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 435, + "method": "updateRecordHTTPS", + "group": null, "cookies": false, "type": "", - "demo": "functions\/create-vcs-deployment.md", + "demo": "domains\/update-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, @@ -27733,17 +27222,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" }, { @@ -27752,75 +27248,74 @@ "schema": { "type": "object", "properties": { - "type": { + "name": { "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": [] + "description": "Record name (subdomain).", + "x-example": "<NAME>" }, - "reference": { + "value": { "type": "string", - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", - "default": null, - "x-example": "<REFERENCE>" + "description": "Target for the HTTPS record.", + "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.", + "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\/mx": { + "post": { + "summary": "Create a new MX record for the given domain.", + "operationId": "domainsCreateRecordMX", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a function 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 \nfor accepting email messages for the domain. Multiple MX records can be created with different priorities.\nThe priority parameter determines the order in which mail servers are used, with lower values indicating \nhigher priority.", "responses": { - "200": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 430, + "method": "createRecordMX", + "group": null, "cookies": false, "type": "", - "demo": "functions\/get-deployment.md", + "demo": "domains\/create-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, @@ -27830,60 +27325,99 @@ }, "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).", + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Mail server domain for this MX record.", + "x-example": "<VALUE>" + }, + "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.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } } ] - }, - "delete": { - "summary": "Delete deployment", - "operationId": "functionsDeleteDeployment", + } + }, + "\/domains\/{domainId}\/records\/mx\/{recordId}": { + "put": { + "summary": "Update an existing MX record for the given domain.", + "operationId": "domainsUpdateRecordMX", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "functions" + "domains" ], - "description": "Delete a code deployment by its unique ID.", + "description": "Update an existing MX record for the given domain.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "DNSRecord", + "schema": { + "$ref": "#\/definitions\/dnsRecord" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 433, + "method": "updateRecordMX", + "group": null, "cookies": false, "type": "", - "demo": "functions\/delete-deployment.md", + "demo": "domains\/update-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, @@ -27893,65 +27427,107 @@ }, "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).", + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Mail server domain for this MX record.", + "x-example": "<VALUE>" + }, + "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.", + "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\/ns": { + "post": { + "summary": "Create a new NS record for the given domain.", + "operationId": "domainsCreateRecordNS", + "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": "Create a new NS record for the given domain. NS records specify the nameservers that are used \nto resolve the domain name to IP addresses. Each domain can have multiple NS records.", "responses": { - "200": { - "description": "File", + "201": { + "description": "DNSRecord", "schema": { - "type": "file" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 436, + "method": "createRecordNS", + "group": null, "cookies": false, - "type": "location", - "demo": "functions\/get-deployment-download.md", + "type": "", + "demo": "domains\/create-record-ns.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, @@ -27961,50 +27537,61 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", - "required": true, - "type": "string", - "x-example": "<FUNCTION_ID>", - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<DOMAIN_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).", + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Nameserver target for this NS record.", + "x-example": "<VALUE>" + }, + "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.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "functionsUpdateDeploymentStatus", + "\/domains\/{domainId}\/records\/ns\/{recordId}": { + "put": { + "summary": "Update an existing NS record for the given domain.", + "operationId": "domainsUpdateRecordNS", "consumes": [ "application\/json" ], @@ -28012,32 +27599,30 @@ "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": "Update an existing NS record for the given domain. This endpoint allows you to modify \nthe properties of an NS (nameserver) record associated with your domain. You can update \nthe record name (subdomain), target nameserver value, TTL, and add or modify comments \nfor better record management.", "responses": { "200": { - "description": "Deployment", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 438, + "method": "updateRecordNS", + "group": null, "cookies": false, "type": "", - "demo": "functions\/update-deployment-status.md", + "demo": "domains\/update-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, @@ -28047,69 +27632,100 @@ }, "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).", + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Nameserver target for this NS record.", + "x-example": "<VALUE>" + }, + "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.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/{functionId}\/executions": { - "get": { - "summary": "List executions", - "operationId": "functionsListExecutions", - "consumes": [], + "\/domains\/{domainId}\/records\/srv": { + "post": { + "summary": "Create a new SRV record for the given domain.", + "operationId": "domainsCreateRecordSRV", + "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": "Create a new SRV record for the given domain. SRV records are used to define the location \nof servers for specific services. For example, they can be used to specify which server \nhandles a specific service like SIP or XMPP for the domain.", "responses": { - "200": { - "description": "Executions List", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/executionList" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "listExecutions", - "group": "executions", - "weight": 441, + "method": "createRecordSRV", + "group": null, "cookies": false, "type": "", - "demo": "functions\/list-executions.md", + "demo": "domains\/create-record-srv.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.read", - "execution.read" - ], + "scope": "domains.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, @@ -28119,84 +27735,113 @@ }, "security": [ { - "Project": [], - "Session": [], - "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": "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 (service name).", + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Target hostname for this SRV record.", + "x-example": "<VALUE>" + }, + "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.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] + } } ] - }, - "post": { - "summary": "Create execution", - "operationId": "functionsCreateExecution", + } + }, + "\/domains\/{domainId}\/records\/srv\/{recordId}": { + "put": { + "summary": "Update an existing SRV record for the given domain.", + "operationId": "domainsUpdateRecordSRV", "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": "Update an existing SRV record for the given domain.\n \nRequired parameters:\n- domainId: Domain unique ID\n- recordId: DNS record unique ID\n- name: Record name (service name)\n- value: Target hostname for this SRV record\n- ttl: Time to live, in seconds\n- priority: Record priority\n- weight: Record weight\n- port: Port number for the service\n \nOptional parameters:\n- comment: A comment for this record", "responses": { - "201": { - "description": "Execution", + "200": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/execution" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "createExecution", - "group": "executions", - "weight": 439, + "method": "updateRecordSRV", + "group": null, "cookies": false, "type": "", - "demo": "functions\/create-execution.md", + "demo": "domains\/update-record-srv.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.write", - "execution.write" - ], + "scope": "domains.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, @@ -28206,19 +27851,24 @@ }, "security": [ { - "Project": [], - "Session": [], - "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": "recordId", + "description": "DNS record unique ID.", + "required": true, + "type": "string", + "x-example": "<RECORD_ID>", "in": "path" }, { @@ -28227,99 +27877,95 @@ "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).", + "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.", + "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.", + "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.", + "x-example": null, + "format": "int32" }, - "scheduledAt": { + "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": "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 + "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\/txt": { + "post": { + "summary": "Create a new TXT record for the given domain.", + "operationId": "domainsCreateRecordTXT", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a function execution log by its unique ID.", + "description": "Create a new TXT record for the given domain. TXT records can be used \nto provide additional information about your domain, such as domain \nverification records, SPF records, or DKIM records.", "responses": { - "200": { - "description": "Execution", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/execution" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "getExecution", - "group": "executions", - "weight": 440, + "method": "createRecordTXT", + "group": null, "cookies": false, "type": "", - "demo": "functions\/get-execution.md", + "demo": "domains\/create-record-txt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.read", - "execution.read" - ], + "scope": "domains.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, @@ -28329,65 +27975,92 @@ }, "security": [ { - "Project": [], - "Session": [], - "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.", - "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.", + "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.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "ttl" + ] + } } ] - }, - "delete": { - "summary": "Delete execution", - "operationId": "functionsDeleteExecution", + } + }, + "\/domains\/{domainId}\/records\/txt\/{recordId}": { + "put": { + "summary": "Update an existing TXT record for the given domain.", + "operationId": "domainsUpdateRecordTXT", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "functions" + "domains" ], - "description": "Delete a function execution by its unique ID.", + "description": "Update an existing TXT record for the given domain.\n \nUpdate the TXT record details for a specific domain by providing the domain ID,\nrecord ID, and the new record configuration including name, value, TTL, and an optional comment.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "DNSRecord", + "schema": { + "$ref": "#\/definitions\/dnsRecord" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteExecution", - "group": "executions", - "weight": 442, + "method": "updateRecordTXT", + "group": null, "cookies": false, "type": "", - "demo": "functions\/delete-execution.md", + "demo": "domains\/update-record-txt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "executions.write", - "execution.write" - ], + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -28397,62 +28070,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": "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 (subdomain) for the TXT record.", + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "TXT record value.", + "x-example": "<VALUE>" + }, + "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.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/{functionId}\/usage": { + "\/domains\/{domainId}\/records\/{recordId}": { "get": { - "summary": "Get function usage", - "operationId": "functionsGetUsage", + "summary": "Get a single DNS record for a given domain by record ID.", + "operationId": "domainsGetRecord", "consumes": [], "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": "Get a single DNS record for a given domain by record ID.\n \nThis endpoint allows you to retrieve a specific DNS record associated with a domain\nusing its unique identifier. The record contains information about the DNS configuration\nsuch as type, value, and TTL settings.", "responses": { "200": { - "description": "UsageFunction", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/usageFunction" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "getRecord", "group": null, - "weight": 443, "cookies": false, "type": "", - "demo": "functions\/get-usage.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" ], @@ -28469,71 +28176,54 @@ ], "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" } ] - } - }, - "\/functions\/{functionId}\/variables": { - "get": { - "summary": "List variables", - "operationId": "functionsListVariables", - "consumes": [], + }, + "delete": { + "summary": "Delete a DNS record for the given domain.", + "operationId": "domainsDeleteRecord", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a list of all variables of a specific function.", + "description": "Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \nfrom a specific domain.", "responses": { - "200": { - "description": "Variables List", - "schema": { - "$ref": "#\/definitions\/variableList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 447, + "method": "deleteRecord", + "group": null, "cookies": false, "type": "", - "demo": "functions\/list-variables.md", + "demo": "domains\/delete-record.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, @@ -28543,45 +28233,33 @@ }, "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": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: key, resourceType, resourceId, secret", - "required": false, - "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": "recordId", + "description": "DNS record unique ID.", + "required": true, + "type": "string", + "x-example": "<RECORD_ID>", + "in": "path" } ] - }, - "post": { - "summary": "Create variable", - "operationId": "functionsCreateVariable", + } + }, + "\/domains\/{domainId}\/team": { + "patch": { + "summary": "Update domain team.", + "operationId": "domainsUpdateTeam", "consumes": [ "application\/json" ], @@ -28589,32 +28267,30 @@ "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": "Update the team ID for a specific domain. This endpoint requires admin access.\n \nUpdating the team ID will transfer ownership and access control of the domain\nand all its DNS records to the new team.", "responses": { - "201": { - "description": "Variable", + "200": { + "description": "Domain", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/domain" } } }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 923, + "method": "updateTeam", + "group": null, "cookies": false, "type": "", - "demo": "functions\/create-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, @@ -28624,17 +28300,16 @@ }, "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" }, { @@ -28643,76 +28318,53 @@ "schema": { "type": "object", "properties": { - "variableId": { - "type": "string", - "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<VARIABLE_ID>" - }, - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>" - }, - "value": { + "teamId": { "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 + "description": "New team unique ID.", + "x-example": "<TEAM_ID>" } }, "required": [ - "variableId", - "key", - "value" + "teamId" ] } } ] } }, - "\/functions\/{functionId}\/variables\/{variableId}": { + "\/domains\/{domainId}\/transfers\/status": { "get": { - "summary": "Get variable", - "operationId": "functionsGetVariable", + "summary": "Get domain transfer status.", + "operationId": "domainsGetTransferStatus", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a variable by its unique ID.", + "description": "Retrieve the current transfer status for a domain. Returns the status, an optional reason, and a timestamp of the last status change.", "responses": { "200": { - "description": "Variable", + "description": "domainTransferStatus", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/domainTransferStatus" } } }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 446, + "method": "getTransferStatus", + "group": null, "cookies": false, "type": "", - "demo": "functions\/get-variable.md", + "demo": "domains\/get-transfer-status.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, @@ -28722,32 +28374,80 @@ }, "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" - }, + } + ] + } + }, + "\/domains\/{domainId}\/zone": { + "get": { + "summary": "Retrieve the DNS zone file for the given domain.", + "operationId": "domainsGetZone", + "consumes": [], + "produces": [ + "text\/plain" + ], + "tags": [ + "domains" + ], + "description": "Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\nzone file in a standardized format that can be used to configure DNS servers.", + "responses": { + "200": { + "description": "Text", + "schema": { + "type": "string" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getZone", + "group": null, + "cookies": false, + "type": "", + "demo": "domains\/get-zone.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "domains.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "variableId", - "description": "Variable unique ID.", + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" } ] }, "put": { - "summary": "Update variable", - "operationId": "functionsUpdateVariable", + "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" ], @@ -28755,32 +28455,30 @@ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Update variable by its unique ID.", + "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": "Variable", + "201": { + "description": "Domain", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/domain" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 448, + "method": "updateZone", + "group": null, "cookies": false, "type": "", - "demo": "functions\/update-variable.md", + "demo": "domains\/update-zone.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, @@ -28790,25 +28488,16 @@ }, "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" }, { @@ -28817,60 +28506,51 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>", - "x-nullable": true - }, - "value": { + "content": { "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 + "description": "DNS zone file content as a string.", + "x-example": "<CONTENT>" } - } + }, + "required": [ + "content" + ] } } ] - }, - "delete": { - "summary": "Delete variable", - "operationId": "functionsDeleteVariable", - "consumes": [ + } + }, + "\/functions": { + "get": { + "summary": "List functions", + "operationId": "functionsList", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ "functions" ], - "description": "Delete a variable by its unique ID.", + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Functions List", + "schema": { + "$ref": "#\/definitions\/functionList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 449, + "method": "list", + "group": "functions", "cookies": false, "type": "", - "demo": "functions\/delete-variable.md", + "demo": "functions\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "functions.read", "platforms": [ "console", "server" @@ -28889,28 +28569,40 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function unique 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: name, enabled, runtime, deploymentId, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<VARIABLE_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" } ] - } - }, - "\/graphql": { + }, "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlQuery", + "summary": "Create function", + "operationId": "functionsCreate", "consumes": [ "application\/json" ], @@ -28918,37 +28610,34 @@ "application\/json" ], "tags": [ - "graphql" + "functions" ], - "description": "Execute a GraphQL mutation.", + "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": "Any", + "201": { + "description": "Function", "schema": { - "$ref": "#\/definitions\/any" + "$ref": "#\/definitions\/function" } } }, "deprecated": false, "x-appwrite": { - "method": "query", - "group": "graphql", - "weight": 116, + "method": "create", + "group": "functions", "cookies": false, - "type": "graphql", - "demo": "graphql\/query.md", - "rate-limit": 60, - "rate-time": 60, + "type": "", + "demo": "functions\/create.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "scope": "functions.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -28956,9 +28645,7 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -28968,136 +28655,394 @@ "schema": { "type": "object", "properties": { - "query": { - "type": "object", - "description": "The query or queries to execute.", + "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", + "dart-3.11", + "dart-3.12", + "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", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ], + "x-enum-name": "FunctionRuntime" + }, + "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": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "templates.read", + "templates.write", + "oauth2.read", + "oauth2.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes" + } + }, + "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>" + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "buildSpecification": { + "type": "string", + "description": "Build specification for the function deployments.", "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": 115, - "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": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "query": { - "type": "object", - "description": "The query or queries to execute.", + "x-example": null + }, + "runtimeSpecification": { + "type": "string", + "description": "Runtime specification for the function executions.", "default": {}, - "x-example": "{}" + "x-example": null + }, + "deploymentRetention": { + "type": "integer", + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, + "x-example": 0, + "format": "int32" } }, "required": [ - "query" + "functionId", + "name", + "runtime" ] } } ] } }, - "\/health": { + "\/functions\/runtimes": { "get": { - "summary": "Get HTTP", - "operationId": "healthGet", + "summary": "List runtimes", + "operationId": "functionsListRuntimes", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite HTTP server is up and responsive.", + "description": "Get a list of all runtimes that are currently active on your instance.", "responses": { "200": { - "description": "Health Status", + "description": "Runtimes List", "schema": { - "$ref": "#\/definitions\/healthStatus" + "$ref": "#\/definitions\/runtimeList" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "health", - "weight": 452, + "method": "listRuntimes", + "group": "runtimes", "cookies": false, "type": "", - "demo": "health\/get.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.md", "auth": { "Project": [] } @@ -29110,45 +29055,43 @@ ] } }, - "\/health\/anti-virus": { + "\/functions\/specifications": { "get": { - "summary": "Get antivirus", - "operationId": "healthGetAntivirus", + "summary": "List specifications", + "operationId": "functionsListSpecifications", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite Antivirus server is up and connection is successful.", + "description": "List allowed function specifications for this instance.", "responses": { "200": { - "description": "Health Antivirus", + "description": "Specifications List", "schema": { - "$ref": "#\/definitions\/healthAntivirus" + "$ref": "#\/definitions\/specificationList" } } }, "deprecated": false, "x-appwrite": { - "method": "getAntivirus", - "group": "health", - "weight": 461, + "method": "listSpecifications", + "group": "runtimes", "cookies": false, "type": "", - "demo": "health\/get-antivirus.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-storage-anti-virus.md", "auth": { "Project": [] } @@ -29161,453 +29104,378 @@ ] } }, - "\/health\/cache": { + "\/functions\/templates": { "get": { - "summary": "Get cache", - "operationId": "healthGetCache", + "summary": "List templates", + "operationId": "functionsListTemplates", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite in-memory cache 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", "schema": { - "$ref": "#\/definitions\/healthStatusList" + "$ref": "#\/definitions\/templateFunctionList" } } }, "deprecated": false, "x-appwrite": { - "method": "getCache", - "group": "health", - "weight": 455, + "method": "listTemplates", + "group": "templates", "cookies": false, "type": "", - "demo": "health\/get-cache.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-cache.md", "auth": { "Project": [] } }, "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": 458, - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "domain", - "description": "string", + "name": "runtimes", + "description": "List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.", "required": false, - "type": "string", + "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", + "dart-3.11", + "dart-3.12", + "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", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ], + "x-enum-name": "FunctionRuntime" + }, + "default": [], "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": 1063, - "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": "useCases", + "description": "List of use cases allowed for filtering function templates. Maximum of 100 use cases are allowed.", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "starter", + "databases", + "ai", + "messaging", + "utilities", + "dev-tools", + "auth" + ], + "x-enum-name": "FunctionTemplateUseCase" + }, + "default": [], + "in": "query" + }, { - "name": "threshold", - "description": "Percentage threshold of projects approaching pause. When hit (equal or higher), endpoint returns server error. Default value is 10.", + "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": 10, + "x-example": 1, + "default": 25, "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.", + "name": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", "required": false, "type": "integer", "format": "int32", - "default": 7, + "x-example": 0, + "default": 0, "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": 454, - "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": [] + "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\/pubsub": { + "\/functions\/templates\/{templateId}": { "get": { - "summary": "Get pubsub", - "operationId": "healthGetPubSub", + "summary": "Get function template", + "operationId": "functionsGetTemplate", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite pub-sub servers are up and connection is successful.", + "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": "Status List", + "description": "Template Function", "schema": { - "$ref": "#\/definitions\/healthStatusList" + "$ref": "#\/definitions\/templateFunction" } } }, "deprecated": false, "x-appwrite": { - "method": "getPubSub", - "group": "health", - "weight": 456, + "method": "getTemplate", + "group": "templates", "cookies": false, "type": "", - "demo": "health\/get-pub-sub.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-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.\n", - "responses": { - "200": { - "description": "Health Queue", - "schema": { - "$ref": "#\/definitions\/healthQueue" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueAudits", - "group": "queue", - "weight": 462, - "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.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "templateId", + "description": "Template ID.", + "required": true, + "type": "string", + "x-example": "<TEMPLATE_ID>", + "in": "path" } ] } }, - "\/health\/queue\/billing-project-aggregation": { + "\/functions\/usage": { "get": { - "summary": "Get billing project aggregation queue", - "operationId": "healthGetQueueBillingProjectAggregation", + "summary": "Get functions usage", + "operationId": "functionsListUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get billing project aggregation queue.", + "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": "getQueueBillingProjectAggregation", + "method": "listUsage", "group": null, - "weight": 1059, "cookies": false, "type": "", - "demo": "health\/get-queue-billing-project-aggregation.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-billing-project-aggregation.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": 10000, + "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\/billing-team-aggregation": { + "\/functions\/{functionId}": { "get": { - "summary": "Get billing team aggregation queue", - "operationId": "healthGetQueueBillingTeamAggregation", + "summary": "Get function", + "operationId": "functionsGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get billing team aggregation queue.", + "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": "getQueueBillingTeamAggregation", - "group": null, - "weight": 1058, + "method": "get", + "group": "functions", "cookies": false, "type": "", - "demo": "health\/get-queue-billing-team-aggregation.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-billing-team-aggregation.md", "auth": { "Project": [] } @@ -29620,56 +29488,53 @@ ], "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": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" } ] - } - }, - "\/health\/queue\/builds": { - "get": { - "summary": "Get builds queue", - "operationId": "healthGetQueueBuilds", - "consumes": [], + }, + "put": { + "summary": "Update function", + "operationId": "functionsUpdate", + "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": "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": "getQueueBuilds", - "group": "queue", - "weight": 466, + "method": "update", + "group": "functions", "cookies": false, "type": "", - "demo": "health\/get-queue-builds.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-builds.md", "auth": { "Project": [] } @@ -29682,56 +29547,395 @@ ], "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" - } + "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.", + "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", + "dart-3.11", + "dart-3.12", + "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", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ], + "x-enum-name": "FunctionRuntime" + }, + "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": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "templates.read", + "templates.write", + "oauth2.read", + "oauth2.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes" + } + }, + "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", + "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>" + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "buildSpecification": { + "type": "string", + "description": "Build specification for the function deployments.", + "default": {}, + "x-example": null + }, + "runtimeSpecification": { + "type": "string", + "description": "Runtime specification for the function executions.", + "default": {}, + "x-example": null + }, + "deploymentRetention": { + "type": "integer", + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "name" + ] + } + } + ] + }, + "delete": { + "summary": "Delete function", + "operationId": "functionsDelete", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "functions" + ], + "description": "Delete a function by its unique ID.", + "responses": { + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getQueuePriorityBuilds", - "group": null, - "weight": 1060, + "method": "delete", + "group": "functions", "cookies": false, "type": "", - "demo": "health\/get-queue-priority-builds.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\/health\/get-queue-priority-builds.md", "auth": { "Project": [] } @@ -29744,56 +29948,55 @@ ], "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" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" } ] } }, - "\/health\/queue\/certificates": { - "get": { - "summary": "Get certificates queue", - "operationId": "healthGetQueueCertificates", - "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 certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) 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": "getQueueCertificates", - "group": "queue", - "weight": 465, + "method": "updateFunctionDeployment", + "group": "functions", "cookies": false, "type": "", - "demo": "health\/get-queue-certificates.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-certificates.md", "auth": { "Project": [] } @@ -29806,56 +30009,70 @@ ], "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.", + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } } ] } }, - "\/health\/queue\/databases": { + "\/functions\/{functionId}\/deployments": { "get": { - "summary": "Get databases queue", - "operationId": "healthGetQueueDatabases", + "summary": "List deployments", + "operationId": "functionsListDeployments", "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 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": "getQueueDatabases", - "group": "queue", - "weight": 467, + "method": "listDeployments", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-queue-databases.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-databases.md", "auth": { "Project": [] } @@ -29868,65 +30085,83 @@ ], "parameters": [ { - "name": "name", - "description": "Queue name for which to check the queue size", + "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": "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": "<NAME>", - "default": "database_db_main", + "x-example": "<SEARCH>", + "default": "", "in": "query" }, { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, - "type": "integer", - "format": "int32", - "default": 5000, + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] - } - }, - "\/health\/queue\/deletes": { - "get": { - "summary": "Get deletes queue", - "operationId": "healthGetQueueDeletes", - "consumes": [], - "produces": [ - "application\/json" + }, + "post": { + "summary": "Create deployment", + "operationId": "functionsCreateDeployment", + "consumes": [ + "multipart\/form-data" + ], + "produces": [ + "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of background destructive changes 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": "getQueueDeletes", - "group": "queue", - "weight": 468, + "method": "createDeployment", + "group": "deployments", "cookies": false, - "type": "", - "demo": "health\/get-queue-deletes.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-deletes.md", "auth": { "Project": [] } @@ -29939,56 +30174,86 @@ ], "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\/failed\/{name}": { - "get": { - "summary": "Get number of failed queue jobs", - "operationId": "healthGetFailedJobs", - "consumes": [], + "\/functions\/{functionId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "functionsCreateDuplicateDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Returns the amount of failed jobs in a given queue.\n", + "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": "getFailedJobs", - "group": "queue", - "weight": 475, + "method": "createDuplicateDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-failed-jobs.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-failed-queue-jobs.md", "auth": { "Project": [] } @@ -30001,81 +30266,78 @@ ], "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": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "<DEPLOYMENT_ID>" + }, + "buildId": { + "type": "string", + "description": "Build unique ID.", + "default": "", + "x-example": "<BUILD_ID>" + } + }, + "required": [ + "deploymentId" + ] + } } ] } }, - "\/health\/queue\/functions": { - "get": { - "summary": "Get functions queue", - "operationId": "healthGetQueueFunctions", - "consumes": [], + "\/functions\/{functionId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "functionsCreateTemplateDeployment", + "consumes": [ + "application\/json" + ], "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": "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": "getQueueFunctions", - "group": "queue", - "weight": 472, + "method": "createTemplateDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-queue-functions.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-functions.md", "auth": { "Project": [] } @@ -30088,56 +30350,108 @@ ], "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": { + "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" + }, + "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.", + "default": false, + "x-example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } } ] } }, - "\/health\/queue\/logs": { - "get": { - "summary": "Get logs queue", - "operationId": "healthGetQueueLogs", - "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 logs 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": "getQueueLogs", - "group": "queue", - "weight": 464, + "method": "createVcsDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-queue-logs.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-logs.md", "auth": { "Project": [] } @@ -30150,56 +30464,87 @@ ], "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", + "x-example": "branch", + "enum": [ + "branch", + "commit" + ], + "x-enum-name": "VCSReferenceType" + }, + "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.", + "default": false, + "x-example": false + } + }, + "required": [ + "type", + "reference" + ] + } } ] } }, - "\/health\/queue\/mails": { + "\/functions\/{functionId}\/deployments\/{deploymentId}": { "get": { - "summary": "Get mails queue", - "operationId": "healthGetQueueMails", + "summary": "Get deployment", + "operationId": "functionsGetDeployment", "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 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": "getQueueMails", - "group": "queue", - "weight": 469, + "method": "getDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-queue-mails.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-mails.md", "auth": { "Project": [] } @@ -30212,56 +30557,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" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" } ] - } - }, - "\/health\/queue\/messaging": { - "get": { - "summary": "Get messaging queue", - "operationId": "healthGetQueueMessaging", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete deployment", + "operationId": "functionsDeleteDeployment", + "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 code deployment 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": 470, + "method": "deleteDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-queue-messaging.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-messaging.md", "auth": { "Project": [] } @@ -30274,56 +30619,61 @@ ], "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\/migrations": { + "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { "get": { - "summary": "Get migrations queue", - "operationId": "healthGetQueueMigrations", + "summary": "Get deployment download", + "operationId": "functionsGetDeploymentDownload", "consumes": [], "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": "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": "getQueueMigrations", - "group": "queue", - "weight": 471, + "method": "getDeploymentDownload", + "group": "deployments", "cookies": false, - "type": "", - "demo": "health\/get-queue-migrations.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-migrations.md", "auth": { "Project": [] } @@ -30331,61 +30681,83 @@ "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", + "default": "source", "in": "query" } ] } }, - "\/health\/queue\/region-manager": { - "get": { - "summary": "Get region manager queue", - "operationId": "healthGetQueueRegionManager", - "consumes": [], + "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "functionsUpdateDeploymentStatus", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get region manager 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", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueRegionManager", - "group": null, - "weight": 1061, + "method": "updateDeploymentStatus", + "group": "deployments", "cookies": false, "type": "", - "demo": "health\/get-queue-region-manager.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-region-manager.md", "auth": { "Project": [] } @@ -30398,56 +30770,65 @@ ], "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\/stats-resources": { + "\/functions\/{functionId}\/executions": { "get": { - "summary": "Get stats resources queue", - "operationId": "healthGetQueueStatsResources", + "summary": "List executions", + "operationId": "functionsListExecutions", "consumes": [], "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": "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", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/executionList" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueStatsResources", - "group": "queue", - "weight": 473, + "method": "listExecutions", + "group": "executions", "cookies": false, "type": "", - "demo": "health\/get-queue-stats-resources.md", + "demo": "functions\/list-executions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": [ + "executions.read", + "execution.read" + ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", "auth": { "Project": [] } @@ -30455,61 +30836,85 @@ "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.", + "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": "integer", - "format": "int32", - "default": 5000, + "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\/queue\/stats-usage": { - "get": { - "summary": "Get stats usage queue", - "operationId": "healthGetQueueUsage", - "consumes": [], - "produces": [ + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", + "consumes": [ "application\/json" ], + "produces": [ + "multipart\/form-data" + ], "tags": [ - "health" + "functions" ], - "description": "Get the number of metrics 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", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/execution" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueUsage", - "group": "queue", - "weight": 474, + "method": "createExecution", + "group": "executions", "cookies": false, "type": "", - "demo": "health\/get-queue-usage.md", + "demo": "functions\/create-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": [ + "executions.write", + "execution.write" + ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-usage.md", "auth": { "Project": [] } @@ -30517,61 +30922,119 @@ "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, - "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": { + "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" + }, + "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.", + "x-example": "<SCHEDULED_AT>", + "x-nullable": true + } + } + } } ] } }, - "\/health\/queue\/threats": { + "\/functions\/{functionId}\/executions\/{executionId}": { "get": { - "summary": "Get threats queue", - "operationId": "healthGetQueueThreats", + "summary": "Get execution", + "operationId": "functionsGetExecution", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get threats queue.", + "description": "Get a function execution log by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Execution", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/execution" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueThreats", - "group": null, - "weight": 1062, + "method": "getExecution", + "group": "executions", "cookies": false, "type": "", - "demo": "health\/get-queue-threats.md", + "demo": "functions\/get-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": [ + "executions.read", + "execution.read" + ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", "auth": { "Project": [] } @@ -30579,61 +31042,66 @@ "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.", - "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": "executionId", + "description": "Execution ID.", + "required": true, + "type": "string", + "x-example": "<EXECUTION_ID>", + "in": "path" } ] - } - }, - "\/health\/queue\/webhooks": { - "get": { - "summary": "Get webhooks queue", - "operationId": "healthGetQueueWebhooks", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete execution", + "operationId": "functionsDeleteExecution", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "health" + "functions" ], - "description": "Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.", + "description": "Delete a function execution by its unique ID.", "responses": { - "200": { - "description": "Health Queue", - "schema": { - "$ref": "#\/definitions\/healthQueue" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getQueueWebhooks", - "group": "queue", - "weight": 463, + "method": "deleteExecution", + "group": "executions", "cookies": false, "type": "", - "demo": "health\/get-queue-webhooks.md", + "demo": "functions\/delete-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": [ + "executions.write", + "execution.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": [] } @@ -30646,107 +31114,138 @@ ], "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": "executionId", + "description": "Execution ID.", + "required": true, + "type": "string", + "x-example": "<EXECUTION_ID>", + "in": "path" } ] } }, - "\/health\/storage": { + "\/functions\/{functionId}\/usage": { "get": { - "summary": "Get storage", - "operationId": "healthGetStorage", + "summary": "Get function usage", + "operationId": "functionsGetUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite storage device is up and connection is successful.", + "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": "Health Status", + "description": "UsageFunction", "schema": { - "$ref": "#\/definitions\/healthStatus" + "$ref": "#\/definitions\/usageFunction" } } }, "deprecated": false, "x-appwrite": { - "method": "getStorage", - "group": "storage", - "weight": 460, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "health\/get-storage.md", + "demo": "functions\/get-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-storage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "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" } ] } }, - "\/health\/storage\/local": { + "\/functions\/{functionId}\/variables": { "get": { - "summary": "Get local storage", - "operationId": "healthGetStorageLocal", + "summary": "List variables", + "operationId": "functionsListVariables", "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 variables of a specific function.", "responses": { "200": { - "description": "Health Status", + "description": "Variables List", "schema": { - "$ref": "#\/definitions\/healthStatus" + "$ref": "#\/definitions\/variableList" } } }, "deprecated": false, "x-appwrite": { - "method": "getStorageLocal", - "group": "storage", - "weight": 459, + "method": "listVariables", + "group": "variables", "cookies": false, "type": "", - "demo": "health\/get-storage-local.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-storage-local.md", "auth": { "Project": [] } @@ -30756,48 +31255,77 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique 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: key, resourceType, resourceId, secret", + "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\/time": { - "get": { - "summary": "Get time", - "operationId": "healthGetTime", - "consumes": [], + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", + "consumes": [ + "application\/json" + ], "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": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", "responses": { - "200": { - "description": "Health Time", + "201": { + "description": "Variable", "schema": { - "$ref": "#\/definitions\/healthTime" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "getTime", - "group": "health", - "weight": 457, + "method": "createVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "health\/get-time.md", + "demo": "functions\/create-variable.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-time.md", "auth": { "Project": [] } @@ -30807,49 +31335,91 @@ "Project": [], "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": { + "variableId": { + "type": "string", + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<VARIABLE_ID>" + }, + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "variableId", + "key", + "value" + ] + } + } ] } }, - "\/locale": { + "\/functions\/{functionId}\/variables\/{variableId}": { "get": { - "summary": "Get user locale", - "operationId": "localeGet", + "summary": "Get variable", + "operationId": "functionsGetVariable", "consumes": [], "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": "Get a variable by its unique ID.", "responses": { "200": { - "description": "Locale", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/locale" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 49, + "method": "getVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "locale\/get.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\/get-locale.md", "auth": { "Project": [] } @@ -30857,53 +31427,66 @@ "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\/codes": { - "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", - "consumes": [], + }, + "put": { + "summary": "Update variable", + "operationId": "functionsUpdateVariable", + "consumes": [ + "application\/json" + ], "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": "Update variable by its unique ID.", "responses": { "200": { - "description": "Locale codes list", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/localeCodeList" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "listCodes", - "group": null, - "weight": 50, + "method": "updateVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "locale\/list-codes.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-locale-codes.md", "auth": { "Project": [] } @@ -30911,53 +31494,88 @@ "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" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>", + "x-nullable": true + }, + "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 + } + } + } } ] - } - }, - "\/locale\/continents": { - "get": { - "summary": "List continents", - "operationId": "localeListContinents", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete variable", + "operationId": "functionsDeleteVariable", + "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 variable 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": "deleteVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "locale\/list-continents.md", + "demo": "functions\/delete-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-continents.md", "auth": { "Project": [] } @@ -30965,53 +31583,70 @@ "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\/countries": { - "get": { - "summary": "List countries", - "operationId": "localeListCountries", - "consumes": [], + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "locale" + "graphql" ], - "description": "List of all countries. 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", "schema": { - "$ref": "#\/definitions\/countryList" + "$ref": "#\/definitions\/any" } } }, "deprecated": false, "x-appwrite": { - "method": "listCountries", - "group": null, - "weight": 51, + "method": "query", + "group": "graphql", "cookies": false, - "type": "", - "demo": "locale\/list-countries.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" + "server", + "client" ], "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\/graphql\/post.md", "auth": { "Project": [] } @@ -31019,53 +31654,74 @@ "security": [ { "Project": [], - "Session": [], "Key": [], + "Session": [], "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" + ] + } + } ] } }, - "\/locale\/countries\/eu": { - "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", - "consumes": [], + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "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", "schema": { - "$ref": "#\/definitions\/countryList" + "$ref": "#\/definitions\/any" } } }, "deprecated": false, "x-appwrite": { - "method": "listCountriesEU", - "group": null, - "weight": 52, + "method": "mutation", + "group": "graphql", "cookies": false, - "type": "", - "demo": "locale\/list-countries-eu.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" + "server", + "client" ], "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": [] } @@ -31073,53 +31729,71 @@ "security": [ { "Project": [], - "Session": [], "Key": [], + "Session": [], "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" + ] + } + } ] } }, - "\/locale\/countries\/phones": { + "\/health": { "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", + "summary": "Get HTTP", + "operationId": "healthGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "locale" + "health" ], - "description": "List of all countries phone codes. 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": "Phones List", + "description": "Health Status", "schema": { - "$ref": "#\/definitions\/phoneList" + "$ref": "#\/definitions\/healthStatus" } } }, "deprecated": false, "x-appwrite": { - "method": "listCountriesPhones", - "group": null, - "weight": 53, + "method": "get", + "group": "health", "cookies": false, "type": "", - "demo": "locale\/list-countries-phones.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" ], "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\/health\/get.md", "auth": { "Project": [] } @@ -31127,53 +31801,49 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ] } }, - "\/locale\/currencies": { + "\/health\/anti-virus": { "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", + "summary": "Get antivirus", + "operationId": "healthGetAntivirus", "consumes": [], "produces": [ "application\/json" ], "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 Antivirus server is up and connection is successful.", "responses": { "200": { - "description": "Currencies List", + "description": "Health Antivirus", "schema": { - "$ref": "#\/definitions\/currencyList" + "$ref": "#\/definitions\/healthAntivirus" } } }, "deprecated": false, "x-appwrite": { - "method": "listCurrencies", - "group": null, - "weight": 55, + "method": "getAntivirus", + "group": "health", "cookies": false, "type": "", - "demo": "locale\/list-currencies.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" ], "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-storage-anti-virus.md", "auth": { "Project": [] } @@ -31181,53 +31851,49 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ] } }, - "\/locale\/languages": { + "\/health\/cache": { "get": { - "summary": "List languages", - "operationId": "localeListLanguages", + "summary": "Get cache", + "operationId": "healthGetCache", "consumes": [], "produces": [ "application\/json" ], "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 in-memory cache servers are up and connection is successful.", "responses": { "200": { - "description": "Languages List", + "description": "Status List", "schema": { - "$ref": "#\/definitions\/languageList" + "$ref": "#\/definitions\/healthStatusList" } } }, "deprecated": false, "x-appwrite": { - "method": "listLanguages", - "group": null, - "weight": 56, + "method": "getCache", + "group": "health", "cookies": false, "type": "", - "demo": "locale\/list-languages.md", + "demo": "health\/get-cache.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "health.read", "platforms": [ "console", - "client", "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-cache.md", "auth": { "Project": [] } @@ -31235,369 +31901,278 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ] } }, - "\/manager\/blocks": { - "post": { - "summary": "Create a new resource block for a project", - "operationId": "managerCreateBlock", - "consumes": [ - "application\/json" - ], + "\/health\/certificate": { + "get": { + "summary": "Get the SSL certificate for a domain", + "operationId": "healthGetCertificate", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "manager" + "health" ], - "description": "Creates a new resource block.", + "description": "Get the SSL certificate for a domain", "responses": { - "201": { - "description": "Block", + "200": { + "description": "Health Certificate", "schema": { - "$ref": "#\/definitions\/block" + "$ref": "#\/definitions\/healthCertificate" } } }, "deprecated": false, "x-appwrite": { - "method": "createBlock", - "group": null, - "weight": 996, + "method": "getCertificate", + "group": "health", "cookies": false, "type": "", - "demo": "manager\/create-block.md", + "demo": "health\/get-certificate.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "", + "scope": "health.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", + "auth": { + "Project": [] + } }, + "security": [ + { + "Project": [], + "Key": [] + } + ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "projectId": { - "type": "string", - "description": "Project ID", - "default": null, - "x-example": "<PROJECT_ID>" - }, - "resourceType": { - "type": "string", - "description": "Resource type to block (e.g., projects, functions, databases, storage, etc.)", - "default": null, - "x-example": "projects", - "enum": [ - "projects", - "functions", - "sites", - "databases", - "buckets", - "providers", - "topics", - "subscribers", - "messages" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "resourceId": { - "type": "string", - "description": "Optional resource ID (if omitted, all resources of this type will be blocked)", - "default": "", - "x-example": "<RESOURCE_ID>" - }, - "reason": { - "type": "string", - "description": "Optional reason why the resource is blocked", - "default": "", - "x-example": "<REASON>" - }, - "expiredAt": { - "type": "string", - "description": "Optional expiration date for the block", - "default": "", - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - } - }, - "required": [ - "projectId", - "resourceType" - ] - } + "name": "domain", + "description": "string", + "required": false, + "type": "string", + "in": "query" } ] - }, - "delete": { - "summary": "Delete resource blocks for a project", - "operationId": "managerDeleteBlock", - "consumes": [ - "application\/json" - ], + } + }, + "\/health\/console-pausing": { + "get": { + "summary": "Get console pausing health", + "operationId": "healthGetConsolePausing", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "manager" + "health" ], - "description": "Deletes resource blocks for a project.", + "description": "Get console pausing health status. Monitors projects approaching the pause threshold to detect potential issues with console access tracking.\n", "responses": { "200": { - "description": "BlockDelete", + "description": "Health Status", "schema": { - "$ref": "#\/definitions\/blockDelete" + "$ref": "#\/definitions\/healthStatus" } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBlock", + "method": "getConsolePausing", "group": null, - "weight": 998, "cookies": false, "type": "", - "demo": "manager\/delete-block.md", + "demo": "health\/get-console-pausing.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "", + "scope": "health.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-console-pausing.md", + "auth": { + "Project": [] + } }, + "security": [ + { + "Project": [], + "Key": [] + } + ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "projectId": { - "type": "string", - "description": "Project ID", - "default": null, - "x-example": "<PROJECT_ID>" - }, - "resourceType": { - "type": "string", - "description": "Resource type to unblock", - "default": null, - "x-example": "projects", - "enum": [ - "projects", - "functions", - "sites", - "databases", - "buckets", - "providers", - "topics", - "subscribers", - "messages" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "resourceId": { - "type": "string", - "description": "Optional resource ID (if omitted, all blocks of this type will be removed)", - "default": "", - "x-example": "<RESOURCE_ID>" - } - }, - "required": [ - "projectId", - "resourceType" - ] - } + "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" } ] } }, - "\/manager\/blocks\/{projectId}": { + "\/health\/db": { "get": { - "summary": "List all resource blocks for a project", - "operationId": "managerListBlocks", + "summary": "Get DB", + "operationId": "healthGetDB", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "manager" + "health" ], - "description": "Lists all resource blocks for a project.", + "description": "Check the Appwrite database servers are up and connection is successful.", "responses": { "200": { - "description": "Blocks list", + "description": "Status List", "schema": { - "$ref": "#\/definitions\/blockList" + "$ref": "#\/definitions\/healthStatusList" } } }, "deprecated": false, "x-appwrite": { - "method": "listBlocks", - "group": null, - "weight": 997, + "method": "getDB", + "group": "health", "cookies": false, "type": "", - "demo": "manager\/list-blocks.md", + "demo": "health\/get-db.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "", + "scope": "health.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md", + "auth": { + "Project": [] + } }, - "parameters": [ + "security": [ { - "name": "projectId", - "description": "Project ID", - "required": true, - "type": "string", - "x-example": "<PROJECT_ID>", - "in": "path" + "Project": [], + "Key": [] } ] } }, - "\/manager\/users\/status": { - "patch": { - "summary": "Update a user status by ID or email", - "operationId": "managerUpdateUserStatus", - "consumes": [ - "application\/json" - ], + "\/health\/pubsub": { + "get": { + "summary": "Get pubsub", + "operationId": "healthGetPubSub", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "manager" + "health" ], - "description": "Updates a console user status using a user ID or email address.", + "description": "Check the Appwrite pub-sub servers are up and connection is successful.", "responses": { "200": { - "description": "User", + "description": "Status List", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/healthStatusList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateUserStatus", - "group": "users", - "weight": 999, + "method": "getPubSub", + "group": "health", "cookies": false, "type": "", - "demo": "manager\/update-user-status.md", + "demo": "health\/get-pub-sub.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "", + "scope": "health.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-pubsub.md", + "auth": { + "Project": [] + } }, - "parameters": [ + "security": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "default": "", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email address.", - "default": "", - "x-example": "<EMAIL>" - }, - "status": { - "type": "boolean", - "description": "User status. Set to `false` to block and `true` to unblock.", - "default": null, - "x-example": false - }, - "reason": { - "type": "string", - "description": "Optional reason when blocking a user. Accepted for parity with the CLI task but not persisted.", - "default": "", - "x-example": "<REASON>" - } - }, - "required": [ - "status" - ] - } + "Project": [], + "Key": [] } ] } }, - "\/messaging\/messages": { + "\/health\/queue\/audits": { "get": { - "summary": "List messages", - "operationId": "messagingListMessages", + "summary": "Get audits queue", + "operationId": "healthGetQueueAudits", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Get a list of all messages from the current Appwrite project.", + "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.\n", "responses": { "200": { - "description": "Message list", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/messageList" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "listMessages", - "group": "messages", - "weight": 157, + "method": "getQueueAudits", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/list-messages.md", + "demo": "health\/get-queue-audits.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-queue-audits.md", "auth": { "Project": [] } @@ -31610,79 +32185,116 @@ ], "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", + "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, + "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\/messages\/email": { - "post": { - "summary": "Create email", - "operationId": "messagingCreateEmail", - "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 email message.", + "description": "Get billing team aggregation queue.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "createEmail", - "group": "messages", - "weight": 154, + "method": "getQueueBillingTeamAggregation", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-email.md", + "demo": "health\/get-queue-billing-team-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": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", "auth": { "Project": [] } @@ -31695,155 +32307,55 @@ ], "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - } - }, - "required": [ - "messageId", - "subject", - "content" - ] - } + "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\/messages\/email\/{messageId}": { - "patch": { - "summary": "Update email", - "operationId": "messagingUpdateEmail", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/builds": { + "get": { + "summary": "Get builds queue", + "operationId": "healthGetQueueBuilds", + "consumes": [], "produces": [ "application\/json" ], "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 number of builds that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Message", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "messages", - "weight": 161, + "method": "getQueueBuilds", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/update-email.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\/update-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-builds.md", "auth": { "Project": [] } @@ -31856,162 +32368,116 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, - "type": "string", - "x-example": "<MESSAGE_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", + "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": { - "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "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" - } - } - } + "$ref": "#\/definitions\/healthQueue" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueuePriorityBuilds", + "group": null, + "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": [] + } + }, + "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" + } ] } }, - "\/messaging\/messages\/push": { - "post": { - "summary": "Create push notification", - "operationId": "messagingCreatePush", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/certificates": { + "get": { + "summary": "Get certificates queue", + "operationId": "healthGetQueueCertificates", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new push notification.", + "description": "Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "createPush", - "group": "messages", - "weight": 156, + "method": "getQueueCertificates", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/create-push.md", + "demo": "health\/get-queue-certificates.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-queue-certificates.md", "auth": { "Project": [] } @@ -32024,194 +32490,55 @@ ], "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "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" - ] - } + "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\/messages\/push\/{messageId}": { - "patch": { - "summary": "Update push notification", - "operationId": "messagingUpdatePush", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/databases": { + "get": { + "summary": "Get databases queue", + "operationId": "healthGetQueueDatabases", + "consumes": [], "produces": [ "application\/json" ], "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": "Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Message", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePush", - "group": "messages", - "weight": 163, + "method": "getQueueDatabases", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/update-push.md", + "demo": "health\/get-queue-databases.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-queue-databases.md", "auth": { "Project": [] } @@ -32224,279 +32551,64 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, + "name": "name", + "description": "Queue name for which to check the queue size", + "required": false, "type": "string", - "x-example": "<MESSAGE_ID>", - "in": "path" + "x-example": "<NAME>", + "default": "database_db_main", + "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "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 - } - } - } + "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\/messages\/sms": { - "post": { - "summary": "Create SMS", - "operationId": "messagingCreateSms", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/deletes": { + "get": { + "summary": "Get deletes queue", + "operationId": "healthGetQueueDeletes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new SMS message.", + "description": "Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/healthQueue" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSms", - "group": "messages", - "weight": 155, + "method": "getQueueDeletes", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/create-sms.md", + "demo": "health\/get-queue-deletes.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-queue-deletes.md", "auth": { "Project": [] } @@ -32509,183 +32621,55 @@ ], "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - } - }, - "required": [ - "messageId", - "content" - ] - } + "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\/messages\/sms\/{messageId}": { - "patch": { - "summary": "Update SMS", - "operationId": "messagingUpdateSms", - "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": "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": "Returns the amount of failed jobs in a given queue.\n", "responses": { "200": { - "description": "Message", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/healthQueue" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSms", - "group": "messages", - "weight": 162, + "method": "getFailedJobs", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/update-sms.md", + "demo": "health\/get-failed-jobs.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-failed-queue-jobs.md", "auth": { "Project": [] } @@ -32698,116 +32682,79 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "name", + "description": "The name of the queue", "required": true, "type": "string", - "x-example": "<MESSAGE_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": "HealthQueueName", "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "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\/messages\/{messageId}": { + "\/health\/queue\/functions": { "get": { - "summary": "Get message", - "operationId": "messagingGetMessage", + "summary": "Get functions queue", + "operationId": "healthGetQueueFunctions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Get a message by its unique ID.\n", + "description": "Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Message", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "getMessage", - "group": "messages", - "weight": 160, + "method": "getQueueFunctions", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/get-message.md", + "demo": "health\/get-queue-functions.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-queue-functions.md", "auth": { "Project": [] } @@ -32820,50 +32767,55 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, - "type": "string", - "x-example": "<MESSAGE_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" } ] - }, - "delete": { - "summary": "Delete message", - "operationId": "messagingDelete", - "consumes": [ + } + }, + "\/health\/queue\/logs": { + "get": { + "summary": "Get logs queue", + "operationId": "healthGetQueueLogs", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "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 logs that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "messages", - "weight": 164, + "method": "getQueueLogs", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/delete.md", + "demo": "health\/get-queue-logs.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-logs.md", "auth": { "Project": [] } @@ -32876,55 +32828,55 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, - "type": "string", - "x-example": "<MESSAGE_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" } ] } }, - "\/messaging\/messages\/{messageId}\/logs": { + "\/health\/queue\/mails": { "get": { - "summary": "List message logs", - "operationId": "messagingListMessageLogs", + "summary": "Get mails queue", + "operationId": "healthGetQueueMails", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Get the message activity logs listed 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": "Logs List", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "listMessageLogs", - "group": "logs", - "weight": 158, + "method": "getQueueMails", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/list-message-logs.md", + "demo": "health\/get-queue-mails.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\/references\/health\/get-queue-mails.md", "auth": { "Project": [] } @@ -32937,76 +32889,55 @@ ], "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.", + "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": 5000, "in": "query" } ] } }, - "\/messaging\/messages\/{messageId}\/targets": { + "\/health\/queue\/messaging": { "get": { - "summary": "List message targets", - "operationId": "messagingListTargets", + "summary": "Get messaging queue", + "operationId": "healthGetQueueMessaging", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Get a list of the targets associated with a message.", + "description": "Get the number of messages that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Target list", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/targetList" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "messages", - "weight": 159, + "method": "getQueueMessaging", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/list-targets.md", + "demo": "health\/get-queue-messaging.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-messaging.md", "auth": { "Project": [] } @@ -33019,76 +32950,55 @@ ], "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.", + "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": 5000, "in": "query" } ] } }, - "\/messaging\/providers": { + "\/health\/queue\/migrations": { "get": { - "summary": "List providers", - "operationId": "messagingListProviders", - "consumes": [], + "summary": "Get migrations queue", + "operationId": "healthGetQueueMigrations", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Get a list of all providers from the current Appwrite project.", + "description": "Get the number of migrations 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": 128, + "method": "getQueueMigrations", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/list-providers.md", + "demo": "health\/get-queue-migrations.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-migrations.md", "auth": { "Project": [] } @@ -33101,151 +33011,55 @@ ], "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.", + "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": 5000, "in": "query" } ] } }, - "\/messaging\/providers\/apns": { - "post": { - "summary": "Create APNS provider", - "operationId": "messagingCreateApnsProvider", - "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 Apple Push Notification service 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": "createApnsProvider", - "group": "providers", - "weight": 127, + "method": "getQueueRegionManager", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-apns-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-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-region-manager.md", "auth": { "Project": [] } @@ -33258,181 +33072,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>" - }, - "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 100.", + "required": false, + "type": "integer", + "format": "int32", + "default": 100, + "in": "query" } ] } }, - "\/messaging\/providers\/apns\/{providerId}": { - "patch": { - "summary": "Update APNS provider", - "operationId": "messagingUpdateApnsProvider", - "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 Apple Push Notification service 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": "updateApnsProvider", - "group": "providers", - "weight": 141, + "method": "getQueueStatsResources", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/update-apns-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-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-stats-resources.md", "auth": { "Project": [] } @@ -33445,174 +33133,55 @@ ], "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\/stats-usage": { + "get": { + "summary": "Get stats usage queue", + "operationId": "healthGetQueueUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new Firebase Cloud Messaging 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": true, + "deprecated": false, "x-appwrite": { - "method": "createFcmProvider", - "group": "providers", - "weight": 126, + "method": "getQueueUsage", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/create-fcm-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": 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\/references\/health\/get-queue-stats-usage.md", "auth": { "Project": [] } @@ -33625,150 +33194,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>" - }, - "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 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/fcm\/{providerId}": { - "patch": { - "summary": "Update FCM provider", - "operationId": "messagingUpdateFcmProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/threats": { + "get": { + "summary": "Get threats queue", + "operationId": "healthGetQueueThreats", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "description": "Get threats queue.", "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": 140, + "method": "getQueueThreats", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-fcm-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": 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\/health\/get-queue-threats.md", "auth": { "Project": [] } @@ -33781,86 +33255,55 @@ ], "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 100.", + "required": false, + "type": "integer", + "format": "int32", + "default": 100, + "in": "query" } ] } }, - "\/messaging\/providers\/mailgun": { - "post": { - "summary": "Create Mailgun provider", - "operationId": "messagingCreateMailgunProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/webhooks": { + "get": { + "summary": "Get webhooks queue", + "operationId": "healthGetQueueWebhooks", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new Mailgun 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": "createMailgunProvider", - "group": "providers", - "weight": 117, + "method": "getQueueWebhooks", + "group": "queue", "cookies": false, "type": "", - "demo": "messaging\/create-mailgun-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-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", "auth": { "Project": [] } @@ -33873,126 +33316,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": "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" - ] - } + "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\/{providerId}": { - "patch": { - "summary": "Update Mailgun provider", - "operationId": "messagingUpdateMailgunProvider", - "consumes": [ - "application\/json" - ], + "\/health\/storage": { + "get": { + "summary": "Get storage", + "operationId": "healthGetStorage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a Mailgun 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": "updateMailgunProvider", - "group": "providers", - "weight": 131, + "method": "getStorage", + "group": "storage", "cookies": false, "type": "", - "demo": "messaging\/update-mailgun-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-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage.md", "auth": { "Project": [] } @@ -34002,126 +33374,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>" - }, - "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>" - } - } - } - } ] } }, - "\/messaging\/providers\/msg91": { - "post": { - "summary": "Create Msg91 provider", - "operationId": "messagingCreateMsg91Provider", - "consumes": [ - "application\/json" - ], + "\/health\/storage\/local": { + "get": { + "summary": "Get local storage", + "operationId": "healthGetStorageLocal", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new MSG91 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": "createMsg91Provider", - "group": "providers", - "weight": 121, + "method": "getStorageLocal", + "group": "storage", "cookies": false, "type": "", - "demo": "messaging\/create-msg-91-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-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", "auth": { "Project": [] } @@ -34131,102 +33424,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>" - }, - "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" - ] - } - } ] } }, - "\/messaging\/providers\/msg91\/{providerId}": { - "patch": { - "summary": "Update Msg91 provider", - "operationId": "messagingUpdateMsg91Provider", - "consumes": [ - "application\/json" - ], + "\/health\/time": { + "get": { + "summary": "Get time", + "operationId": "healthGetTime", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a MSG91 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": "updateMsg91Provider", - "group": "providers", - "weight": 135, + "method": "getTime", + "group": "health", "cookies": false, "type": "", - "demo": "messaging\/update-msg-91-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-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", "auth": { "Project": [] } @@ -34236,100 +33474,101 @@ "Project": [], "Key": [] } + ] + } + }, + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", + "consumes": [], + "produces": [ + "application\/json" ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", + "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": { - "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>" - } - } + "$ref": "#\/definitions\/locale" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "get", + "group": null, + "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": [], + "Key": [], + "JWT": [] + } ] } }, - "\/messaging\/providers\/resend": { - "post": { - "summary": "Create Resend provider", - "operationId": "messagingCreateResendProvider", - "consumes": [ - "application\/json" - ], + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Create a new Resend provider.", + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Locale codes list", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/localeCodeList" } } }, "deprecated": false, "x-appwrite": { - "method": "createResendProvider", - "group": "providers", - "weight": 119, + "method": "listCodes", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-resend-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\/create-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", "auth": { "Project": [] } @@ -34337,118 +33576,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>" - }, - "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" - ] - } + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/providers\/resend\/{providerId}": { - "patch": { - "summary": "Update Resend provider", - "operationId": "messagingUpdateResendProvider", - "consumes": [ - "application\/json" - ], + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Update a Resend provider by its unique ID.", + "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": "updateResendProvider", - "group": "providers", - "weight": 133, + "method": "listContinents", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-resend-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" ], "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\/locale\/list-continents.md", "auth": { "Project": [] } @@ -34456,115 +33629,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": "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>" - } - } - } + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/providers\/sendgrid": { - "post": { - "summary": "Create Sendgrid provider", - "operationId": "messagingCreateSendgridProvider", - "consumes": [ - "application\/json" - ], + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Create a new Sendgrid provider.", + "description": "List of all countries. You can use the locale header to get the data in a supported language.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Countries List", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/countryList" } } }, "deprecated": false, "x-appwrite": { - "method": "createSendgridProvider", - "group": "providers", - "weight": 118, + "method": "listCountries", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-sendgrid-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\/create-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", "auth": { "Project": [] } @@ -34572,118 +33682,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>" - }, - "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" - ] - } + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/providers\/sendgrid\/{providerId}": { - "patch": { - "summary": "Update Sendgrid provider", - "operationId": "messagingUpdateSendgridProvider", - "consumes": [ - "application\/json" - ], + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Update a Sendgrid provider 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": "Provider", + "description": "Countries List", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/countryList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSendgridProvider", - "group": "providers", - "weight": 132, + "method": "listCountriesEU", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-sendgrid-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" ], "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\/locale\/list-countries-eu.md", "auth": { "Project": [] } @@ -34691,201 +33735,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": "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>" - } - } - } + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/providers\/smtp": { - "post": { - "summary": "Create SMTP provider", - "operationId": "messagingCreateSmtpProvider", - "consumes": [ - "application\/json" - ], + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Create a new SMTP provider.", + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Phones List", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/phoneList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSmtpProvider", - "group": "providers", - "weight": 120, + "method": "listCountriesPhones", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-smtp-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" ], "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\/references\/locale\/list-countries-phones.md", "auth": { "Project": [] } @@ -34893,245 +33788,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>" - }, - "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" - ] - } + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/providers\/smtp\/{providerId}": { - "patch": { - "summary": "Update SMTP provider", - "operationId": "messagingUpdateSmtpProvider", - "consumes": [ - "application\/json" - ], + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Update a SMTP provider 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": "Provider", + "description": "Currencies List", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/currencyList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSmtpProvider", - "group": "providers", - "weight": 134, + "method": "listCurrencies", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-smtp-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" ], "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\/locale\/list-currencies.md", "auth": { "Project": [] } @@ -35139,161 +33841,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>" - }, - "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 - } - } - } + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/providers\/telesign": { - "post": { - "summary": "Create Telesign provider", - "operationId": "messagingCreateTelesignProvider", - "consumes": [ - "application\/json" - ], + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Create a new Telesign provider.", + "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Languages List", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/languageList" } } }, "deprecated": false, "x-appwrite": { - "method": "createTelesignProvider", - "group": "providers", - "weight": 122, + "method": "listLanguages", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-telesign-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" ], "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\/list-languages.md", "auth": { "Project": [] } @@ -35301,68 +33894,17 @@ "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" - }, - "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" - ] - } + "Session": [], + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/providers\/telesign\/{providerId}": { - "patch": { - "summary": "Update Telesign provider", - "operationId": "messagingUpdateTelesignProvider", + "\/manager\/blocks": { + "post": { + "summary": "Create a new resource block for a project", + "operationId": "managerCreateBlock", "consumes": [ "application\/json" ], @@ -35370,102 +33912,94 @@ "application\/json" ], "tags": [ - "messaging" + "manager" ], - "description": "Update a Telesign provider by its unique ID.", + "description": "Creates a new resource block.", "responses": { - "200": { - "description": "Provider", + "201": { + "description": "Block", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/block" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTelesignProvider", - "group": "providers", - "weight": 136, - "cookies": false, + "method": "createBlock", + "group": null, + "cookies": false, "type": "", - "demo": "messaging\/update-telesign-provider.md", + "demo": "manager\/create-block.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", - "auth": { - "Project": [] - } + "public": true }, - "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": { + "projectId": { "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" + "description": "Project ID", + "x-example": "<PROJECT_ID>" }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true + "resourceType": { + "type": "string", + "description": "Resource type to block (e.g., projects, functions, databases, storage, etc.)", + "x-example": "projects", + "enum": [ + "projects", + "functions", + "sites", + "databases", + "buckets", + "providers", + "topics", + "subscribers", + "messages" + ], + "x-enum-name": "BlockResourceType" }, - "customerId": { + "resourceId": { "type": "string", - "description": "Telesign customer ID.", + "description": "Optional resource ID (if omitted, all resources of this type will be blocked)", "default": "", - "x-example": "<CUSTOMER_ID>" + "x-example": "<RESOURCE_ID>" }, - "apiKey": { + "reason": { "type": "string", - "description": "Telesign API key.", + "description": "Optional reason why the resource is blocked", "default": "", - "x-example": "<API_KEY>" + "x-example": "<REASON>" }, - "from": { + "expiredAt": { "type": "string", - "description": "Sender number.", + "description": "Optional expiration date for the block", "default": "", - "x-example": "<FROM>" + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" } - } + }, + "required": [ + "projectId", + "resourceType" + ] } } ] - } - }, - "\/messaging\/providers\/textmagic": { - "post": { - "summary": "Create Textmagic provider", - "operationId": "messagingCreateTextmagicProvider", + }, + "delete": { + "summary": "Delete resource blocks for a project", + "operationId": "managerDeleteBlock", "consumes": [ "application\/json" ], @@ -35473,46 +34007,34 @@ "application\/json" ], "tags": [ - "messaging" + "manager" ], - "description": "Create a new Textmagic provider.", + "description": "Deletes resource blocks for a project.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "BlockDelete", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/blockDelete" } } }, "deprecated": false, "x-appwrite": { - "method": "createTextmagicProvider", - "group": "providers", - "weight": 123, + "method": "deleteBlock", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/create-textmagic-provider.md", + "demo": "manager\/delete-block.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", - "auth": { - "Project": [] - } + "public": true }, - "security": [ - { - "Project": [], - "Key": [] - } - ], "parameters": [ { "name": "payload", @@ -35520,161 +34042,97 @@ "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": { + "projectId": { "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" + "description": "Project ID", + "x-example": "<PROJECT_ID>" }, - "username": { + "resourceType": { "type": "string", - "description": "Textmagic username.", - "default": "", - "x-example": "<USERNAME>" + "description": "Resource type to unblock", + "x-example": "projects", + "enum": [ + "projects", + "functions", + "sites", + "databases", + "buckets", + "providers", + "topics", + "subscribers", + "messages" + ], + "x-enum-name": "BlockResourceType" }, - "apiKey": { + "resourceId": { "type": "string", - "description": "Textmagic apiKey.", + "description": "Optional resource ID (if omitted, all blocks of this type will be removed)", "default": "", - "x-example": "<API_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true + "x-example": "<RESOURCE_ID>" } }, "required": [ - "providerId", - "name" + "projectId", + "resourceType" ] } } ] } }, - "\/messaging\/providers\/textmagic\/{providerId}": { - "patch": { - "summary": "Update Textmagic provider", - "operationId": "messagingUpdateTextmagicProvider", - "consumes": [ - "application\/json" - ], + "\/manager\/blocks\/{projectId}": { + "get": { + "summary": "List all resource blocks for a project", + "operationId": "managerListBlocks", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "manager" ], - "description": "Update a Textmagic provider by its unique ID.", + "description": "Lists all resource blocks for a project.", "responses": { "200": { - "description": "Provider", + "description": "Blocks list", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/blockList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTextmagicProvider", - "group": "providers", - "weight": 137, + "method": "listBlocks", + "group": null, "cookies": false, "type": "", - "demo": "messaging\/update-textmagic-provider.md", + "demo": "manager\/list-blocks.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", - "auth": { - "Project": [] - } + "public": true }, - "security": [ - { - "Project": [], - "Key": [] - } - ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "projectId", + "description": "Project ID", "required": true, "type": "string", - "x-example": "<PROVIDER_ID>", + "x-example": "<PROJECT_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", + "\/manager\/users\/status": { + "patch": { + "summary": "Update a user status by ID or email", + "operationId": "managerUpdateUserStatus", "consumes": [ "application\/json" ], @@ -35682,46 +34140,34 @@ "application\/json" ], "tags": [ - "messaging" + "manager" ], - "description": "Create a new Twilio provider.", + "description": "Updates a console user status using a user ID or email address.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "User", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "createTwilioProvider", - "group": "providers", - "weight": 124, + "method": "updateUserStatus", + "group": "users", "cookies": false, "type": "", - "demo": "messaging\/create-twilio-provider.md", + "demo": "manager\/update-user-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", - "auth": { - "Project": [] - } + "public": true }, - "security": [ - { - "Project": [], - "Key": [] - } - ], "parameters": [ { "name": "payload", @@ -35729,95 +34175,76 @@ "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": { + "userId": { "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "description": "User ID.", "default": "", - "x-example": "+12065550100", - "format": "phone" + "x-example": "<USER_ID>" }, - "accountSid": { + "email": { "type": "string", - "description": "Twilio account secret ID.", + "description": "User email address.", "default": "", - "x-example": "<ACCOUNT_SID>" + "x-example": "<EMAIL>" }, - "authToken": { + "status": { + "type": "boolean", + "description": "User status. Set to `false` to block and `true` to unblock.", + "x-example": false + }, + "reason": { "type": "string", - "description": "Twilio authentication token.", + "description": "Optional reason when blocking a user. Accepted for parity with the CLI task but not persisted.", "default": "", - "x-example": "<AUTH_TOKEN>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true + "x-example": "<REASON>" } }, "required": [ - "providerId", - "name" + "status" ] } } ] } }, - "\/messaging\/providers\/twilio\/{providerId}": { - "patch": { - "summary": "Update Twilio provider", - "operationId": "messagingUpdateTwilioProvider", - "consumes": [ - "application\/json" - ], + "\/messaging\/messages": { + "get": { + "summary": "List messages", + "operationId": "messagingListMessages", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Update a Twilio provider by its unique ID.", + "description": "Get a list of all messages from the current Appwrite project.", "responses": { "200": { - "description": "Provider", + "description": "Message list", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/messageList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTwilioProvider", - "group": "providers", - "weight": 138, + "method": "listMessages", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/update-twilio-provider.md", + "demo": "messaging\/list-messages.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "messages.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\/messaging\/list-messages.md", "auth": { "Project": [] } @@ -35830,60 +34257,42 @@ ], "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: 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": "<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 - }, - "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>" - } - } - } + "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\/vonage": { + "\/messaging\/messages\/email": { "post": { - "summary": "Create Vonage provider", - "operationId": "messagingCreateVonageProvider", + "summary": "Create email", + "operationId": "messagingCreateEmail", "consumes": [ "application\/json" ], @@ -35893,34 +34302,33 @@ "tags": [ "messaging" ], - "description": "Create a new Vonage provider.", + "description": "Create a new email message.", "responses": { "201": { - "description": "Provider", + "description": "Message", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/message" } } }, "deprecated": false, "x-appwrite": { - "method": "createVonageProvider", - "group": "providers", - "weight": 125, + "method": "createEmail", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/create-vonage-provider.md", + "demo": "messaging\/create-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "messages.write", "platforms": [ "console", "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\/messaging\/create-email.md", "auth": { "Project": [] } @@ -35938,58 +34346,109 @@ "schema": { "type": "object", "properties": { - "providerId": { + "messageId": { "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>" + "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": "Provider name.", - "default": null, - "x-example": "<NAME>" + "description": "Email Subject.", + "x-example": "<SUBJECT>" }, - "from": { + "content": { "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" + "description": "Email Content.", + "x-example": "<CONTENT>" }, - "apiKey": { - "type": "string", - "description": "Vonage API key.", - "default": "", - "x-example": "<API_KEY>" + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "default": "", - "x-example": "<API_SECRET>" + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } }, - "enabled": { + "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": "Set as enabled.", - "default": null, - "x-example": false, + "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.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } }, "required": [ - "providerId", - "name" + "messageId", + "subject", + "content" ] } } ] } }, - "\/messaging\/providers\/vonage\/{providerId}": { + "\/messaging\/messages\/email\/{messageId}": { "patch": { - "summary": "Update Vonage provider", - "operationId": "messagingUpdateVonageProvider", + "summary": "Update email", + "operationId": "messagingUpdateEmail", "consumes": [ "application\/json" ], @@ -35999,34 +34458,33 @@ "tags": [ "messaging" ], - "description": "Update a Vonage provider by its unique ID.", + "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": "Provider", + "description": "Message", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/message" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVonageProvider", - "group": "providers", - "weight": 139, + "method": "updateEmail", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/update-vonage-provider.md", + "demo": "messaging\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "messages.write", "platforms": [ "console", "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\/messaging\/update-email.md", "auth": { "Project": [] } @@ -36039,11 +34497,11 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "messageId", + "description": "Message ID.", "required": true, "type": "string", - "x-example": "<PROVIDER_ID>", + "x-example": "<MESSAGE_ID>", "in": "path" }, { @@ -36052,36 +34510,90 @@ "schema": { "type": "object", "properties": { - "name": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "subject": { "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" + "description": "Email Subject.", + "x-example": "<SUBJECT>", + "x-nullable": true }, - "enabled": { + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "<CONTENT>", + "x-nullable": true + }, + "draft": { "type": "boolean", - "description": "Set as enabled.", - "default": null, + "description": "Is message a draft", "x-example": false, "x-nullable": true }, - "apiKey": { - "type": "string", - "description": "Vonage API key.", - "default": "", - "x-example": "<API_KEY>" + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "x-example": false, + "x-nullable": true }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "default": "", - "x-example": "<API_SECRET>" + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } }, - "from": { + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "scheduledAt": { "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "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, + "x-nullable": true, + "items": { + "type": "string" + } } } } @@ -36089,45 +34601,46 @@ ] } }, - "\/messaging\/providers\/{providerId}": { - "get": { - "summary": "Get provider", - "operationId": "messagingGetProvider", - "consumes": [], + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Get a provider by its unique ID.\n", + "description": "Create a new push notification.", "responses": { - "200": { - "description": "Provider", + "201": { + "description": "Message", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/message" } } }, "deprecated": false, "x-appwrite": { - "method": "getProvider", - "group": "providers", - "weight": 130, + "method": "createPush", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/get-provider.md", + "demo": "messaging\/create-push.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "messages.write", "platforms": [ "console", "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\/messaging\/create-push.md", "auth": { "Project": [] } @@ -36140,111 +34653,190 @@ ], "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": { + "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.", + "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.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "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" + } + }, + "required": [ + "messageId" + ] + } } ] - }, - "delete": { - "summary": "Delete provider", - "operationId": "messagingDeleteProvider", + } + }, + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", "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": 142, - "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, - "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.", + "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": "listProviderLogs", - "group": "providers", - "weight": 129, + "method": "updatePush", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/list-provider-logs.md", + "demo": "messaging\/update-push.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "messages.write", "platforms": [ "console", "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\/messaging\/update-push.md", "auth": { "Project": [] } @@ -36257,204 +34849,154 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "messageId", + "description": "Message ID.", "required": true, "type": "string", - "x-example": "<PROVIDER_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" - } - ] - } - }, - "\/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", + "name": "payload", + "in": "body", "schema": { - "$ref": "#\/definitions\/logList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listSubscriberLogs", - "group": "subscribers", - "weight": 151, - "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, - "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" + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "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.", + "default": {}, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "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-nullable": true + } + } + } } ] } }, - "\/messaging\/topics": { - "get": { - "summary": "List topics", - "operationId": "messagingListTopics", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "messaging" - ], - "description": "Get a list of all topics from the current Appwrite project.", - "responses": { - "200": { - "description": "Topic list", - "schema": { - "$ref": "#\/definitions\/topicList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listTopics", - "group": "topics", - "weight": 144, - "cookies": false, - "type": "", - "demo": "messaging\/list-topics.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\/list-topics.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: 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": "<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\/sms": { "post": { - "summary": "Create topic", - "operationId": "messagingCreateTopic", + "summary": "Create SMS", + "operationId": "messagingCreateSms", "consumes": [ "application\/json" ], @@ -36464,34 +35006,103 @@ "tags": [ "messaging" ], - "description": "Create a new topic.", + "description": "Create a new SMS message.", "responses": { "201": { - "description": "Topic", + "description": "Message", "schema": { - "$ref": "#\/definitions\/topic" + "$ref": "#\/definitions\/message" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createTopic", - "group": "topics", - "weight": 143, + "method": "createSms", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/create-topic.md", + "demo": "messaging\/create-sms.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", + "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": [] } @@ -36509,78 +35120,174 @@ "schema": { "type": "object", "properties": { - "topicId": { + "messageId": { "type": "string", - "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", - "default": null, - "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": { + "content": { "type": "string", - "description": "Topic Name.", - "default": null, - "x-example": "<NAME>" + "description": "SMS Content.", + "x-example": "<CONTENT>" }, - "subscribe": { + "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" } + }, + "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.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true } }, "required": [ - "topicId", - "name" + "messageId", + "content" ] } } ] } }, - "\/messaging\/topics\/{topicId}": { - "get": { - "summary": "Get topic", - "operationId": "messagingGetTopic", - "consumes": [], + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Get a topic by its unique ID.\n", + "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": "Topic", + "description": "Message", "schema": { - "$ref": "#\/definitions\/topic" + "$ref": "#\/definitions\/message" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getTopic", - "group": "topics", - "weight": 146, + "method": "updateSms", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/get-topic.md", + "demo": "messaging\/update-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\/get-topic.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": [] } @@ -36593,55 +35300,109 @@ ], "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" - } - ] - }, - "patch": { - "summary": "Update topic", - "operationId": "messagingUpdateTopic", - "consumes": [ - "application\/json" - ], - "produces": [ + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + } + } + } + ] + } + }, + "\/messaging\/messages\/{messageId}": { + "get": { + "summary": "Get message", + "operationId": "messagingGetMessage", + "consumes": [], + "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Update a topic by its unique ID.\n", + "description": "Get a message by its unique ID.\n", "responses": { "200": { - "description": "Topic", + "description": "Message", "schema": { - "$ref": "#\/definitions\/topic" + "$ref": "#\/definitions\/message" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTopic", - "group": "topics", - "weight": 147, + "method": "getMessage", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/update-topic.md", + "demo": "messaging\/get-message.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "messages.read", "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\/get-message.md", "auth": { "Project": [] } @@ -36654,44 +35415,18 @@ ], "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": { - "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" - } - } - } - } } ] }, "delete": { - "summary": "Delete topic", - "operationId": "messagingDeleteTopic", + "summary": "Delete message", + "operationId": "messagingDelete", "consumes": [ "application\/json" ], @@ -36699,7 +35434,7 @@ "tags": [ "messaging" ], - "description": "Delete a topic 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" @@ -36707,23 +35442,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteTopic", - "group": "topics", - "weight": 148, + "method": "delete", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/delete-topic.md", + "demo": "messaging\/delete.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\/delete-message.md", "auth": { "Project": [] } @@ -36736,20 +35470,20 @@ ], "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" } ] } }, - "\/messaging\/topics\/{topicId}\/logs": { + "\/messaging\/messages\/{messageId}\/logs": { "get": { - "summary": "List topic logs", - "operationId": "messagingListTopicLogs", + "summary": "List message logs", + "operationId": "messagingListMessageLogs", "consumes": [], "produces": [ "application\/json" @@ -36757,7 +35491,7 @@ "tags": [ "messaging" ], - "description": "Get the topic activity logs listed by its unique ID.", + "description": "Get the message activity logs listed by its unique ID.", "responses": { "200": { "description": "Logs List", @@ -36768,23 +35502,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTopicLogs", - "group": "topics", - "weight": 145, + "method": "listMessageLogs", + "group": "logs", "cookies": false, "type": "", - "demo": "messaging\/list-topic-logs.md", + "demo": "messaging\/list-message-logs.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-topic-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-logs.md", "auth": { "Project": [] } @@ -36797,11 +35530,11 @@ ], "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" }, { @@ -36828,10 +35561,10 @@ ] } }, - "\/messaging\/topics\/{topicId}\/subscribers": { + "\/messaging\/messages\/{messageId}\/targets": { "get": { - "summary": "List subscribers", - "operationId": "messagingListSubscribers", + "summary": "List message targets", + "operationId": "messagingListTargets", "consumes": [], "produces": [ "application\/json" @@ -36839,34 +35572,33 @@ "tags": [ "messaging" ], - "description": "Get a list of all subscribers from the current Appwrite project.", + "description": "Get a list of the targets associated with a message.", "responses": { "200": { - "description": "Subscriber list", + "description": "Target list", "schema": { - "$ref": "#\/definitions\/subscriberList" + "$ref": "#\/definitions\/targetList" } } }, "deprecated": false, "x-appwrite": { - "method": "listSubscribers", - "group": "subscribers", - "weight": 150, + "method": "listTargets", + "group": "messages", "cookies": false, "type": "", - "demo": "messaging\/list-subscribers.md", + "demo": "messaging\/list-targets.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\/list-subscribers.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", "auth": { "Project": [] } @@ -36879,16 +35611,16 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "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). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: targetId, topicId, userId, 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. You may filter on the following attributes: userId, providerId, identifier, providerType", "required": false, "type": "array", "collectionFormat": "multi", @@ -36898,15 +35630,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.", @@ -36917,101 +35640,12 @@ "in": "query" } ] - }, - "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": 149, - "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": [], - "Key": [] - } - ], - "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}": { + "\/messaging\/providers": { "get": { - "summary": "Get subscriber", - "operationId": "messagingGetSubscriber", + "summary": "List providers", + "operationId": "messagingListProviders", "consumes": [], "produces": [ "application\/json" @@ -37019,99 +35653,33 @@ "tags": [ "messaging" ], - "description": "Get a subscriber by its unique ID.\n", + "description": "Get a list of all providers from the current Appwrite project.", "responses": { "200": { - "description": "Subscriber", + "description": "Provider list", "schema": { - "$ref": "#\/definitions\/subscriber" + "$ref": "#\/definitions\/providerList" } } }, "deprecated": false, "x-appwrite": { - "method": "getSubscriber", - "group": "subscribers", - "weight": 152, + "method": "listProviders", + "group": "providers", "cookies": false, "type": "", - "demo": "messaging\/get-subscriber.md", + "demo": "messaging\/list-providers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "providers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "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" - } - ] - }, - "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": 153, - "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", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", "auth": { "Project": [] } @@ -37119,82 +35687,13 @@ "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" - } - ] - } - }, - "\/migrations": { - "get": { - "summary": "List migrations", - "operationId": "migrationsList", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "migrations" - ], - "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": "Migrations List", - "schema": { - "$ref": "#\/definitions\/migrationList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "list", - "group": null, - "weight": 583, - "cookies": false, - "type": "", - "demo": "migrations\/list.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\/list-migrations.md", - "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: 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). 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", @@ -37225,10 +35724,10 @@ ] } }, - "\/migrations\/appwrite": { + "\/messaging\/providers\/apns": { "post": { - "summary": "Create Appwrite migration", - "operationId": "migrationsCreateAppwriteMigration", + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", "consumes": [ "application\/json" ], @@ -37236,257 +35735,367 @@ "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": "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": "createAppwriteMigration", - "group": null, - "weight": 587, + "method": "createApnsProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-appwrite-migration.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-appwrite.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "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", - "documentsdb", - "vectorsdb", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "provider", - "topic", - "subscriber", - "message", - "site", - "site-deployment", - "site-variable", - "platform", - "backup-policy" - ], - "x-enum-name": "AppwriteMigrationResource", - "x-enum-keys": [] - } + "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": [], + "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.", + "x-example": "<PROVIDER_ID>" }, - "endpoint": { + "name": { "type": "string", - "description": "Source Appwrite endpoint", - "default": null, - "x-example": "https:\/\/example.com", - "format": "url" + "description": "Provider name.", + "x-example": "<NAME>" }, - "projectId": { + "authKey": { "type": "string", - "description": "Source Project ID", - "default": null, - "x-example": "<PROJECT_ID>" + "description": "APNS authentication key.", + "default": "", + "x-example": "<AUTH_KEY>" }, - "apiKey": { + "authKeyId": { "type": "string", - "description": "Source API Key", - "default": null, - "x-example": "<API_KEY>" + "description": "APNS authentication key ID.", + "default": "", + "x-example": "<AUTH_KEY_ID>" }, - "onDuplicate": { + "teamId": { "type": "string", - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "default": "fail", - "x-example": "fail", - "enum": [ - "fail", - "skip", - "overwrite" - ], - "x-enum-name": null, - "x-enum-keys": [] + "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.", + "x-example": false, + "x-nullable": true } }, "required": [ - "resources", - "endpoint", - "projectId", - "apiKey" + "providerId", + "name" ] } } ] } }, - "\/migrations\/appwrite\/report": { - "get": { - "summary": "Get Appwrite migration report", - "operationId": "migrationsGetAppwriteReport", - "consumes": [], + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "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": "Update a Apple Push Notification service 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": "getAppwriteReport", - "group": null, - "weight": 1081, + "method": "updateApnsProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/get-appwrite-report.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-appwrite-report.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": "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", - "vectorsdb", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "provider", - "topic", - "subscriber", - "message", - "site", - "site-deployment", - "site-variable", - "platform", - "backup-policy" - ], - "x-enum-name": "AppwriteMigrationResource", - "x-enum-keys": [] - }, - "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", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", - "in": "query" + "x-example": "<PROVIDER_ID>", + "in": "path" }, { - "name": "key", - "description": "Source's API Key", - "required": true, - "type": "string", - "x-example": "<KEY>", - "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.", + "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.", + "x-example": false, + "x-nullable": true + } + } + } } ] } }, - "\/migrations\/csv\/exports": { + "\/messaging\/providers\/fcm": { "post": { - "summary": "Export documents to CSV", - "operationId": "migrationsCreateCSVExport", + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", "consumes": [ "application\/json" ], @@ -37494,42 +36103,107 @@ "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 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": "createCSVExport", - "group": null, - "weight": 596, + "method": "createFcmProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-csv-export.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-csv-export.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": [ @@ -37539,80 +36213,43 @@ "schema": { "type": "object", "properties": { - "resourceId": { + "providerId": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", - "default": null, - "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.", - "default": null, - "x-example": "<FILENAME>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "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" - } + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "default": {}, + "x-example": "{}", + "x-nullable": true }, - "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": { + "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.", + "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\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", "consumes": [ "application\/json" ], @@ -37620,103 +36257,151 @@ "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 Firebase Cloud Messaging 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": 595, + "method": "updateFcmProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-csv-import.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-csv-import.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": "providerId", + "description": "Provider ID.", + "required": true, + "type": "string", + "x-example": "<PROVIDER_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": { + "name": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", - "default": null, - "x-example": "<ID1:ID2>" + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "internalFile": { + "enabled": { "type": "boolean", - "description": "Is the file stored in an internal bucket?", - "default": false, - "x-example": false + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true }, - "onDuplicate": { - "type": "string", - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "default": "fail", - "x-example": "fail", - "enum": [ - "fail", - "skip", - "overwrite" - ], - "x-enum-name": null, - "x-enum-keys": [] + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "default": {}, + "x-example": "{}", + "x-nullable": true } - }, - "required": [ - "bucketId", - "fileId", - "resourceId" - ] + } } } ] } }, - "\/migrations\/firebase": { + "\/messaging\/providers\/mailgun": { "post": { - "summary": "Create Firebase migration", - "operationId": "migrationsCreateFirebaseMigration", + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", "consumes": [ "application\/json" ], @@ -37724,42 +36409,43 @@ "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 Mailgun provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "createFirebaseMigration", - "group": null, - "weight": 589, + "method": "createMailgunProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-firebase-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-firebase.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -37769,133 +36455,206 @@ "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": [] - } + "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", - "default": null, - "x-example": "<SERVICE_ACCOUNT>" + "description": "Provider name.", + "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.", + "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.", + "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\/mailgun\/{providerId}": { + "patch": { + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", + "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 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": "getFirebaseReport", - "group": null, - "weight": 590, + "method": "updateMailgunProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/get-firebase-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-firebase-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", + "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": "FirebaseMigrationResource", - "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>" + }, + "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.", + "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.", + "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\/json\/exports": { + "\/messaging\/providers\/msg91": { "post": { - "summary": "Export documents to JSON", - "operationId": "migrationsCreateJSONExport", + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", "consumes": [ "application\/json" ], @@ -37903,42 +36662,43 @@ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Export documents to a JSON file from your Appwrite database. This endpoint allows you to export documents to a JSON file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.\n", + "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": "createJSONExport", - "group": null, - "weight": 598, + "method": "createMsg91Provider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-json-export.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-json-export.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -37948,56 +36708,54 @@ "schema": { "type": "object", "properties": { - "resourceId": { + "providerId": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", - "default": null, - "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 .json 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" - } + "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.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "templateId": { + "type": "string", + "description": "Msg91 template ID", + "default": "", + "x-example": "<TEMPLATE_ID>" }, - "notify": { - "type": "boolean", - "description": "Set to true to receive an email when the export is complete. Default is true.", - "default": true, - "x-example": false + "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.", + "x-example": false, + "x-nullable": true } }, "required": [ - "resourceId", - "filename" + "providerId", + "name" ] } } ] } }, - "\/migrations\/json\/imports": { - "post": { - "summary": "Import documents from a JSON", - "operationId": "migrationsCreateJSONImport", + "\/messaging\/providers\/msg91\/{providerId}": { + "patch": { + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", "consumes": [ "application\/json" ], @@ -38005,103 +36763,100 @@ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Import documents from a JSON file into your Appwrite database. This endpoint allows you to import documents from a JSON file uploaded to Appwrite Storage bucket.\n", + "description": "Update a MSG91 provider by its unique ID.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "createJSONImport", - "group": null, - "weight": 597, + "method": "updateMsg91Provider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-json-import.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-json-import.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-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": { - "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).", - "default": null, - "x-example": "<BUCKET_ID>" + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "fileId": { - "type": "string", - "description": "File ID.", - "default": null, - "x-example": "<FILE_ID>" + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true }, - "resourceId": { + "templateId": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", - "default": null, - "x-example": "<ID1:ID2>" + "description": "Msg91 template ID.", + "default": "", + "x-example": "<TEMPLATE_ID>" }, - "internalFile": { - "type": "boolean", - "description": "Is the file stored in an internal bucket?", - "default": false, - "x-example": false + "senderId": { + "type": "string", + "description": "Msg91 sender ID.", + "default": "", + "x-example": "<SENDER_ID>" }, - "onDuplicate": { + "authKey": { "type": "string", - "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", - "default": "fail", - "x-example": "fail", - "enum": [ - "fail", - "skip", - "overwrite" - ], - "x-enum-name": null, - "x-enum-keys": [] + "description": "Msg91 auth key.", + "default": "", + "x-example": "<AUTH_KEY>" } - }, - "required": [ - "bucketId", - "fileId", - "resourceId" - ] + } } } ] } }, - "\/migrations\/nhost": { + "\/messaging\/providers\/resend": { "post": { - "summary": "Create NHost migration", - "operationId": "migrationsCreateNHostMigration", + "summary": "Create Resend provider", + "operationId": "messagingCreateResendProvider", "consumes": [ "application\/json" ], @@ -38109,42 +36864,43 @@ "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 Resend provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "createNHostMigration", - "group": null, - "weight": 593, + "method": "createResendProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-n-host-migration.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\/migration-nhost.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -38154,226 +36910,182 @@ "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": "NHostMigrationResource", - "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", - "default": null, - "x-example": "<SUBDOMAIN>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "region": { + "apiKey": { "type": "string", - "description": "Source's Region", - "default": null, - "x-example": "<REGION>" + "description": "Resend API key.", + "default": "", + "x-example": "<API_KEY>" }, - "adminSecret": { + "fromName": { "type": "string", - "description": "Source's Admin Secret", - "default": null, - "x-example": "<ADMIN_SECRET>" + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" }, - "database": { + "fromEmail": { "type": "string", - "description": "Source's Database Name", - "default": null, - "x-example": "<DATABASE>" + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "username": { + "replyToName": { "type": "string", - "description": "Source's Database Username", - "default": null, - "x-example": "<USERNAME>" + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" }, - "password": { + "replyToEmail": { "type": "string", - "description": "Source's Database Password", - "default": null, - "x-example": "<PASSWORD>" + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "port": { - "type": "integer", - "description": "Source's Database Port", - "default": 5432, - "x-example": null, - "format": "int32" + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "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\/resend\/{providerId}": { + "patch": { + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", + "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 Resend 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": 594, + "method": "updateResendProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/get-n-host-report.md", + "demo": "messaging\/update-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\/migration-nhost-report.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-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": "NHostMigrationResource", - "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>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "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>" + } + } + } } ] } }, - "\/migrations\/supabase": { + "\/messaging\/providers\/sendgrid": { "post": { - "summary": "Create Supabase migration", - "operationId": "migrationsCreateSupabaseMigration", + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", "consumes": [ "application\/json" ], @@ -38381,42 +37093,43 @@ "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 Sendgrid provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "createSupabaseMigration", - "group": null, - "weight": 591, + "method": "createSendgridProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/create-supabase-migration.md", + "demo": "messaging\/create-sendgrid-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-sendgrid-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -38426,270 +37139,425 @@ "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": "SupabaseMigrationResource", - "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>" }, - "endpoint": { + "name": { "type": "string", - "description": "Source's Supabase Endpoint", - "default": null, - "x-example": "https:\/\/example.com", - "format": "url" + "description": "Provider name.", + "x-example": "<NAME>" }, "apiKey": { "type": "string", - "description": "Source's API Key", - "default": null, + "description": "Sendgrid API key.", + "default": "", "x-example": "<API_KEY>" }, - "databaseHost": { + "fromName": { "type": "string", - "description": "Source's Database Host", - "default": null, - "x-example": "<DATABASE_HOST>" + "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.", + "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.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "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\/sendgrid\/{providerId}": { + "patch": { + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", + "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 Sendgrid 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": 592, + "method": "updateSendgridProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/get-supabase-report.md", + "demo": "messaging\/update-sendgrid-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-sendgrid-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": "SupabaseMigrationResource", - "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" + "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.", + "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>" + } + } + } } ] } }, - "\/migrations\/{migrationId}": { - "get": { - "summary": "Get migration", - "operationId": "migrationsGet", - "consumes": [], + "\/messaging\/providers\/smtp": { + "post": { + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "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 SMTP provider.", "responses": { - "200": { - "description": "Migration", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "get", - "group": null, - "weight": 584, + "method": "createSmtpProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/get.md", + "demo": "messaging\/create-smtp-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", + "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": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "migrationId", - "description": "Migration unique 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.", + "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.", + "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'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption" + }, + "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.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name", + "host" + ] + } } ] - }, + } + }, + "\/messaging\/providers\/smtp\/{providerId}": { "patch": { - "summary": "Update retry migration", - "operationId": "migrationsRetry", + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", "consumes": [ "application\/json" ], @@ -38697,184 +37565,237 @@ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", + "description": "Update a SMTP provider by its unique ID.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, - "deprecated": false, - "x-appwrite": { - "method": "retry", - "group": null, - "weight": 585, - "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, - "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, + "deprecated": true, "x-appwrite": { - "method": "delete", - "group": null, - "weight": 586, + "method": "updateSmtpProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "migrations\/delete.md", + "demo": "messaging\/update-smtp-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\/delete-migration.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "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": [ - "organizations" - ], - "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": "Organizations list", - "schema": { - "$ref": "#\/definitions\/organizationList" + "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 } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "list", - "group": null, - "weight": 1009, - "cookies": false, - "type": "", - "demo": "organizations\/list.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\/references\/teams\/list-teams.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>" + }, + "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.", + "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'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption" + }, + "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.", + "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.", + "x-example": false, + "x-nullable": true + } + } + } } ] - }, + } + }, + "\/messaging\/providers\/telesign": { "post": { - "summary": "Create Organization", - "operationId": "organizationsCreate", + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", "consumes": [ "application\/json" ], @@ -38882,49 +37803,43 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Create a new organization.\n", + "description": "Create a new Telesign 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": 1008, + "method": "createTelesignProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/create.md", - "rate-limit": 10, + "demo": "messaging\/create-telesign-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-telesign-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -38934,96 +37849,55 @@ "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.", - "default": null, - "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.", - "default": null, + "description": "Provider name.", "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": { + "from": { "type": "string", - "description": "Unique ID of billing address", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", "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": "+12065550100", + "format": "phone" }, - "couponId": { + "customerId": { "type": "string", - "description": "Coupon id", - "default": null, - "x-example": "<COUPON_ID>", - "x-nullable": true + "description": "Telesign customer ID.", + "default": "", + "x-example": "<CUSTOMER_ID>" }, - "taxId": { + "apiKey": { "type": "string", - "description": "Tax Id associated to billing.", - "default": null, - "x-example": "<TAX_ID>", - "x-nullable": true + "description": "Telesign API key.", + "default": "", + "x-example": "<API_KEY>" }, - "budget": { - "type": "integer", - "description": "Budget limit for additional usage set for the organization", - "default": null, - "x-example": 0, - "format": "int32", + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "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\/telesign\/{providerId}": { "patch": { - "summary": "Estimate create Organization", - "operationId": "organizationsEstimationCreateOrganization", + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", "consumes": [ "application\/json" ], @@ -39031,105 +37905,100 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get estimation for creating an organization.", + "description": "Update a Telesign 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": 1043, + "method": "updateTelesignProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/estimation-create-organization.md", - "rate-limit": 10, + "demo": "messaging\/update-telesign-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-telesign-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.", - "default": null, - "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", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "customerId": { + "type": "string", + "description": "Telesign customer ID.", + "default": "", + "x-example": "<CUSTOMER_ID>" }, - "couponId": { + "apiKey": { "type": "string", - "description": "Coupon id", - "default": null, - "x-example": "<COUPON_ID>", - "x-nullable": true + "description": "Telesign API key.", + "default": "", + "x-example": "<API_KEY>" }, - "platform": { + "from": { "type": "string", - "description": "Platform type", - "default": "appwrite", - "x-example": "appwrite", - "enum": [ - "appwrite", - "imagine" - ], - "x-enum-name": null, - "x-enum-keys": [] + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } - }, - "required": [ - "billingPlan" - ] + } } } ] } }, - "\/organizations\/{organizationId}": { - "delete": { - "summary": "Delete team", - "operationId": "organizationsDelete", + "\/messaging\/providers\/textmagic": { + "post": { + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", "consumes": [ "application\/json" ], @@ -39137,116 +38006,202 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Delete an organization.", + "description": "Create a new Textmagic provider.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": null, - "weight": 1010, + "method": "createTextmagicProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/delete.md", + "demo": "messaging\/create-textmagic-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", + "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": "Team ID.", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/addons": { - "get": { - "summary": "List addons", - "operationId": "organizationsListAddons", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "organizations" - ], - "description": "List all billing addons for an organization.\n", - "responses": { - "200": { - "description": "Addons list", + "name": "payload", + "in": "body", "schema": { - "$ref": "#\/definitions\/addonList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listAddons", - "group": null, - "weight": 1051, - "cookies": false, - "type": "", - "demo": "organizations\/list-addons.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "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.", + "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.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + ] + } + }, + "\/messaging\/providers\/textmagic\/{providerId}": { + "patch": { + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Update a Textmagic provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateTextmagicProvider", + "group": "providers", + "cookies": false, + "type": "", + "demo": "messaging\/update-textmagic-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-addons.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": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "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}\/addons\/baa": { + "\/messaging\/providers\/twilio": { "post": { - "summary": "Create BAA addon", - "operationId": "organizationsCreateBaaAddon", + "summary": "Create Twilio provider", + "operationId": "messagingCreateTwilioProvider", "consumes": [ "application\/json" ], @@ -39254,125 +38209,202 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Create the BAA billing addon for an organization.\n", + "description": "Create a new Twilio provider.", "responses": { "201": { - "description": "Addon", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/addon" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "createBaaAddon", - "group": null, - "weight": 1054, + "method": "createTwilioProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/create-baa-addon.md", - "rate-limit": 10, + "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\/create-baa-addon.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": { + "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.", + "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.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } } ] } }, - "\/organizations\/{organizationId}\/addons\/{addonId}": { - "get": { - "summary": "Get addon", - "operationId": "organizationsGetAddon", - "consumes": [], + "\/messaging\/providers\/twilio\/{providerId}": { + "patch": { + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get the details of a billing addon for an organization.\n", + "description": "Update a Twilio provider by its unique ID.", "responses": { "200": { - "description": "Addon", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/addon" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "getAddon", - "group": null, - "weight": 1052, + "method": "updateTwilioProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/get-addon.md", + "demo": "messaging\/update-twilio-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-addon.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 ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<PROVIDER_ID>", "in": "path" }, { - "name": "addonId", - "description": "Addon ID", - "required": true, - "type": "string", - "x-example": "<ADDON_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.", + "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>" + } + } + } } ] - }, - "delete": { - "summary": "Delete addon", - "operationId": "organizationsDeleteAddon", + } + }, + "\/messaging\/providers\/vonage": { + "post": { + "summary": "Create Vonage provider", + "operationId": "messagingCreateVonageProvider", "consumes": [ "application\/json" ], @@ -39380,65 +38412,101 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Delete a billing addon for an organization.\n", + "description": "Create a new Vonage provider.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteAddon", - "group": null, - "weight": 1055, + "method": "createVonageProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/delete-addon.md", - "rate-limit": 10, + "demo": "messaging\/create-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\/delete-addon.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": "addonId", - "description": "Addon ID", - "required": true, - "type": "string", - "x-example": "<ADDON_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.", + "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.", + "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.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } } ] } }, - "\/organizations\/{organizationId}\/addons\/{addonId}\/confirmations": { - "post": { - "summary": "Confirm addon payment after 3DS authentication", - "operationId": "organizationsConfirmAddonPayment", + "\/messaging\/providers\/vonage\/{providerId}": { + "patch": { + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", "consumes": [ "application\/json" ], @@ -39446,195 +38514,271 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Confirm payment for a billing addon for an organization.\n", + "description": "Update a Vonage provider by its unique ID.", "responses": { "200": { - "description": "Addon", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/addon" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "confirmAddonPayment", - "group": null, - "weight": 1056, + "method": "updateVonageProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/confirm-addon-payment.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\/confirm-addon-payment.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" }, { - "name": "addonId", - "description": "Addon ID", - "required": true, - "type": "string", - "x-example": "<ADDON_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.", + "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>" + } + } + } } ] } }, - "\/organizations\/{organizationId}\/addons\/{addon}\/price": { + "\/messaging\/providers\/{providerId}": { "get": { - "summary": "Get addon price", - "operationId": "organizationsGetAddonPrice", + "summary": "Get provider", + "operationId": "messagingGetProvider", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get the price details for a billing addon for an organization.\n", + "description": "Get a provider by its unique ID.\n", "responses": { "200": { - "description": "AddonPrice", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/addonPrice" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "getAddonPrice", - "group": null, - "weight": 1053, + "method": "getProvider", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/get-addon-price.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-addon-price.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" - }, + } + ] + }, + "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", + "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": [ { - "name": "addon", - "description": "Addon key identifier (e.g. baa).", + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "baa", - "enum": [ - "baa" - ], - "x-enum-name": null, - "x-enum-keys": [], + "x-example": "<PROVIDER_ID>", "in": "path" } ] } }, - "\/organizations\/{organizationId}\/aggregations": { + "\/messaging\/providers\/{providerId}\/logs": { "get": { - "summary": "List aggregations", - "operationId": "organizationsListAggregations", + "summary": "List provider logs", + "operationId": "messagingListProviderLogs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get a list of all aggregations for an organization.", + "description": "Get the provider activity logs listed by its unique ID.", "responses": { "200": { - "description": "Aggregation team list", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/aggregationTeamList" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "listAggregations", - "group": null, - "weight": 1025, + "method": "listProviderLogs", + "group": "providers", "cookies": false, "type": "", - "demo": "organizations\/list-aggregations.md", + "demo": "messaging\/list-provider-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "providers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-aggregations.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, "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", + "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", @@ -39643,177 +38787,184 @@ }, "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}\/aggregations\/{aggregationId}": { + "\/messaging\/subscribers\/{subscriberId}\/logs": { "get": { - "summary": "Get aggregation", - "operationId": "organizationsGetAggregation", + "summary": "List subscriber logs", + "operationId": "messagingListSubscriberLogs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get a specific aggregation using it's aggregation ID.", + "description": "Get the subscriber activity logs listed by its unique ID.", "responses": { "200": { - "description": "AggregationTeam", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/aggregationTeam" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "getAggregation", - "group": null, - "weight": 1026, + "method": "listSubscriberLogs", + "group": "subscribers", "cookies": false, "type": "", - "demo": "organizations\/get-aggregation.md", + "demo": "messaging\/list-subscriber-logs.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\/organizations\/get-aggregation.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", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, - { - "name": "aggregationId", - "description": "Invoice unique ID", + "name": "subscriberId", + "description": "Subscriber ID.", "required": true, "type": "string", - "x-example": "<AGGREGATION_ID>", + "x-example": "<SUBSCRIBER_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.", + "name": "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": "integer", - "format": "int32", - "x-example": 0, - "default": 5, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], "in": "query" }, { - "name": "offset", - "description": "Offset value. The default value is 0. Use this param to manage pagination.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, - "type": "integer", - "format": "int32", - "default": 0, + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] } }, - "\/organizations\/{organizationId}\/billing-address": { - "patch": { - "summary": "Set team's billing address", - "operationId": "organizationsSetBillingAddress", - "consumes": [ - "application\/json" - ], + "\/messaging\/topics": { + "get": { + "summary": "List topics", + "operationId": "messagingListTopics", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Set a billing address for an organization.", + "description": "Get a list of all topics from the current Appwrite project.", "responses": { "200": { - "description": "Organization", + "description": "Topic list", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/topicList" } } }, "deprecated": false, "x-appwrite": { - "method": "setBillingAddress", - "group": null, - "weight": 1018, + "method": "listTopics", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/set-billing-address.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\/set-billing-address.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, + "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", - "schema": { - "type": "object", - "properties": { - "billingAddressId": { - "type": "string", - "description": "Unique ID of billing address", - "default": null, - "x-example": "<BILLING_ADDRESS_ID>" - } - }, - "required": [ - "billingAddressId" - ] - } + "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 team's billing address", - "operationId": "organizationsDeleteBillingAddress", + "post": { + "summary": "Create topic", + "operationId": "messagingCreateTopic", "consumes": [ "application\/json" ], @@ -39821,124 +38972,145 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Delete a team's billing address.", + "description": "Create a new topic.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Topic", + "schema": { + "$ref": "#\/definitions\/topic" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBillingAddress", - "group": null, - "weight": 1019, + "method": "createTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/delete-billing-address.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\/delete-billing-address.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": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "topicId": { + "type": "string", + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "x-example": "<TOPIC_ID>" + }, + "name": { + "type": "string", + "description": "Topic Name.", + "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" + ] + } } ] } }, - "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { + "\/messaging\/topics\/{topicId}": { "get": { - "summary": "Get billing address", - "operationId": "organizationsGetBillingAddress", + "summary": "Get topic", + "operationId": "messagingGetTopic", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get a billing address using it's ID.", + "description": "Get a topic by its unique ID.\n", "responses": { "200": { - "description": "BillingAddress", + "description": "Topic", "schema": { - "$ref": "#\/definitions\/billingAddress" + "$ref": "#\/definitions\/topic" } } }, "deprecated": false, "x-appwrite": { - "method": "getBillingAddress", - "group": null, - "weight": 1017, + "method": "getTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/get-billing-address.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-billing-address.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": "billingAddressId", - "description": "Unique ID of billing address", + "name": "topicId", + "description": "Topic ID.", "required": true, "type": "string", - "x-example": "<BILLING_ADDRESS_ID>", + "x-example": "<TOPIC_ID>", "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/billing-email": { + }, "patch": { - "summary": "Set team's billing email", - "operationId": "organizationsSetBillingEmail", + "summary": "Update topic", + "operationId": "messagingUpdateTopic", "consumes": [ "application\/json" ], @@ -39946,51 +39118,52 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Set the current billing email for the organization.", + "description": "Update a topic by its unique ID.\n", "responses": { "200": { - "description": "Organization", + "description": "Topic", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/topic" } } }, "deprecated": false, "x-appwrite": { - "method": "setBillingEmail", - "group": null, - "weight": 1037, + "method": "updateTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/set-billing-email.md", + "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\/set-billing-email.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", + "name": "topicId", + "description": "Topic ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<TOPIC_ID>", "in": "path" }, { @@ -39999,173 +39172,223 @@ "schema": { "type": "object", "properties": { - "billingEmail": { + "name": { "type": "string", - "description": "Billing email for the organization.", - "default": null, - "x-example": "email@example.com", - "format": "email" + "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\"]", + "x-nullable": true, + "items": { + "type": "string" + } } - }, - "required": [ - "billingEmail" - ] + } } } ] - } - }, - "\/organizations\/{organizationId}\/budget": { - "patch": { - "summary": "Update organization budget", - "operationId": "organizationsUpdateBudget", + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "organizations" + "messaging" ], - "description": "Update the budget limit for an organization.", + "description": "Delete a topic by its unique ID.", "responses": { - "200": { - "description": "Organization", - "schema": { - "$ref": "#\/definitions\/organization" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateBudget", - "group": null, - "weight": 1014, + "method": "deleteTopic", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/update-budget.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-budget.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 Unique ID", + "name": "topicId", + "description": "Topic ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<TOPIC_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "budget": { - "type": "integer", - "description": "Budget limit for additional usage set for the organization", - "default": null, - "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": [ - "budget" - ] - } } ] } }, - "\/organizations\/{organizationId}\/credits": { + "\/messaging\/topics\/{topicId}\/logs": { "get": { - "summary": "List credits", - "operationId": "organizationsListCredits", + "summary": "List topic logs", + "operationId": "messagingListTopicLogs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "List all credits for an organization.\n", + "description": "Get the topic activity logs listed by its unique ID.", "responses": { "200": { - "description": "CreditList", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/creditList" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "listCredits", - "group": null, - "weight": 1029, + "method": "listTopicLogs", + "group": "topics", "cookies": false, "type": "", - "demo": "organizations\/list-credits.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\/list-credits.md", + "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, + "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). 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\/{topicId}\/subscribers": { + "get": { + "summary": "List subscribers", + "operationId": "messagingListSubscribers", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Get a list of all subscribers from the current Appwrite project.", + "responses": { + "200": { + "description": "Subscriber list", + "schema": { + "$ref": "#\/definitions\/subscriberList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listSubscribers", + "group": "subscribers", + "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": [] } + }, + "security": [ + { + "Project": [], + "Key": [] + } ], "parameters": [ { - "name": "organizationId", - "description": "Organization 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\/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", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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", @@ -40174,12 +39397,30 @@ }, "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": "Add credits from coupon", - "operationId": "organizationsAddCredit", + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", "consumes": [ "application\/json" ], @@ -40187,51 +39428,55 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Add credit to an organization using a coupon.", + "description": "Create a new subscriber.", "responses": { "201": { - "description": "Credit", + "description": "Subscriber", "schema": { - "$ref": "#\/definitions\/credit" + "$ref": "#\/definitions\/subscriber" } } }, "deprecated": false, "x-appwrite": { - "method": "addCredit", - "group": null, - "weight": 1030, + "method": "createSubscriber", + "group": "subscribers", "cookies": false, "type": "", - "demo": "organizations\/add-credit.md", - "rate-limit": 10, + "demo": "messaging\/create-subscriber.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "subscribers.write", "platforms": [ + "server", + "client", "console" ], "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\/create-subscriber.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [], + "Session": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization 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" }, { @@ -40240,187 +39485,197 @@ "schema": { "type": "object", "properties": { - "couponId": { + "subscriberId": { "type": "string", - "description": "ID of the coupon", - "default": null, - "x-example": "<COUPON_ID>" + "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": [ - "couponId" + "subscriberId", + "targetId" ] } } ] } }, - "\/organizations\/{organizationId}\/credits\/available": { + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { "get": { - "summary": "Get available credits", - "operationId": "organizationsGetAvailableCredits", + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get total available valid credits for an organization.", + "description": "Get a subscriber by its unique ID.\n", "responses": { "200": { - "description": "CreditAvailable", + "description": "Subscriber", "schema": { - "$ref": "#\/definitions\/creditAvailable" + "$ref": "#\/definitions\/subscriber" } } }, "deprecated": false, "x-appwrite": { - "method": "getAvailableCredits", - "group": null, - "weight": 1028, + "method": "getSubscriber", + "group": "subscribers", "cookies": false, "type": "", - "demo": "organizations\/get-available-credits.md", + "demo": "messaging\/get-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "subscribers.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-subscriber.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, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<TOPIC_ID>", + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "type": "string", + "x-example": "<SUBSCRIBER_ID>", "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/credits\/{creditId}": { - "get": { - "summary": "Get credit details", - "operationId": "organizationsGetCredit", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "organizations" + "messaging" ], - "description": "Get credit details.", + "description": "Delete a subscriber 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": 1027, + "method": "deleteSubscriber", + "group": "subscribers", "cookies": false, "type": "", - "demo": "organizations\/get-credit.md", + "demo": "messaging\/delete-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "subscribers.write", "platforms": [ + "server", + "client", "console" ], "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-subscriber.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [], + "Session": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization 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": "creditId", - "description": "Credit Unique ID", + "name": "subscriberId", + "description": "Subscriber ID.", "required": true, "type": "string", - "x-example": "<CREDIT_ID>", + "x-example": "<SUBSCRIBER_ID>", "in": "path" } ] } }, - "\/organizations\/{organizationId}\/estimations\/delete-organization": { - "patch": { - "summary": "Estimate delete team", - "operationId": "organizationsEstimationDeleteOrganization", - "consumes": [ - "application\/json" - ], + "\/migrations": { + "get": { + "summary": "List migrations", + "operationId": "migrationsList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Get estimation for deleting an organization.", + "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": "EstimationDeleteOrganization", + "description": "Migrations List", "schema": { - "$ref": "#\/definitions\/estimationDeleteOrganization" + "$ref": "#\/definitions\/migrationList" } } }, "deprecated": false, "x-appwrite": { - "method": "estimationDeleteOrganization", + "method": "list", "group": null, - "weight": 1044, "cookies": false, "type": "", - "demo": "organizations\/estimation-delete-organization.md", - "rate-limit": 10, + "demo": "migrations\/list.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organizations.write", + "scope": "migrations.read", "platforms": [ "console" ], "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\/migrations\/list-migrations.md", "auth": { "Project": [] } @@ -40432,20 +39687,42 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Team 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, + "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": "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", + "\/migrations\/appwrite": { + "post": { + "summary": "Create Appwrite migration", + "operationId": "migrationsCreateAppwriteMigration", "consumes": [ "application\/json" ], @@ -40453,35 +39730,34 @@ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Get estimation for updating the organization plan.", + "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": "EstimationUpdatePlan", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/estimationUpdatePlan" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "estimationUpdatePlan", + "method": "createAppwriteMigration", "group": null, - "weight": 1041, "cookies": false, "type": "", - "demo": "organizations\/estimation-update-plan.md", - "rate-limit": 10, + "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\/estimation-update-plan.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite.md", "auth": { "Project": [] } @@ -40492,91 +39768,127 @@ } ], "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_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": { + "resources": { "type": "array", - "description": "Additional member invites", - "default": [], + "description": "List of resources to migrate", "x-example": null, "items": { - "type": "string" + "type": "string", + "enum": [ + "user", + "team", + "membership", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "documentsdb", + "vectorsdb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "provider", + "topic", + "subscriber", + "message", + "site", + "site-deployment", + "site-variable", + "platform", + "backup-policy" + ], + "x-enum-name": "AppwriteMigrationResource" } }, - "couponId": { + "endpoint": { "type": "string", - "description": "Coupon id", - "default": null, - "x-example": "<COUPON_ID>", - "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>" + }, + "onDuplicate": { + "type": "string", + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "default": "fail", + "x-example": "fail", + "enum": [ + "fail", + "skip", + "overwrite" + ], + "x-enum-name": "MigrationOnDuplicate" } }, "required": [ - "billingPlan" + "resources", + "endpoint", + "projectId", + "apiKey" ] } } ] } }, - "\/organizations\/{organizationId}\/feedbacks\/downgrade": { - "post": { - "summary": "Create downgrade feedback", - "operationId": "organizationsCreateDowngradeFeedback", - "consumes": [ - "application\/json" - ], + "\/migrations\/appwrite\/report": { + "get": { + "summary": "Get Appwrite migration report", + "operationId": "migrationsGetAppwriteReport", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "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": "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": { - "201": { - "description": "Downgrade Feedback", + "200": { + "description": "Migration Report", "schema": { - "$ref": "#\/definitions\/downgradeFeedback" + "$ref": "#\/definitions\/migrationReport" } } }, "deprecated": false, "x-appwrite": { - "method": "createDowngradeFeedback", + "method": "getAppwriteReport", "group": null, - "weight": 1045, "cookies": false, "type": "", - "demo": "organizations\/create-downgrade-feedback.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\/create-downgrade-feedback.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite-report.md", "auth": { "Project": [] } @@ -40588,164 +39900,113 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "resources", + "description": "List of resources to migrate", "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "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", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "user", + "team", + "membership", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "documentsdb", + "vectorsdb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "provider", + "topic", + "subscriber", "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" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listInvoices", - "group": null, - "weight": 1032, - "cookies": false, - "type": "", - "demo": "organizations\/list-invoices.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\/list-invoices.md", - "auth": { - "Project": [] - } - }, - "security": [ + "site", + "site-deployment", + "site-variable", + "platform", + "backup-policy" + ], + "x-enum-name": "AppwriteMigrationResource" + }, + "in": "query" + }, { - "Project": [] - } - ], - "parameters": [ + "name": "endpoint", + "description": "Source's Appwrite Endpoint", + "required": true, + "type": "string", + "format": "url", + "x-example": "https:\/\/example.com", + "in": "query" + }, { - "name": "organizationId", - "description": "Organization ID", + "name": "projectID", + "description": "Source's Project ID", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" + "x-example": "<PROJECT_ID>", + "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, type, amount, currency, from, to, dueAt, attempts, status, grossAmount", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], + "name": "key", + "description": "Source's API Key", + "required": true, + "type": "string", + "x-example": "<KEY>", "in": "query" } ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { - "get": { - "summary": "Get invoice", - "operationId": "organizationsGetInvoice", - "consumes": [], + "\/migrations\/csv\/exports": { + "post": { + "summary": "Export documents to CSV", + "operationId": "migrationsCreateCSVExport", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Get an invoice by its unique ID.", + "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": "Invoice", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/invoice" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "getInvoice", + "method": "createCSVExport", "group": null, - "weight": 1031, "cookies": false, "type": "", - "demo": "organizations\/get-invoice.md", + "demo": "migrations\/create-csv-export.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-invoice.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", "auth": { "Project": [] } @@ -40757,62 +40018,118 @@ ], "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" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "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.", + "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" + ] + } } ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { - "get": { - "summary": "Download invoice in PDF", - "operationId": "organizationsGetInvoiceDownload", - "consumes": [], + "\/migrations\/csv\/imports": { + "post": { + "summary": "Import documents from a CSV", + "operationId": "migrationsCreateCSVImport", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Download invoice in PDF", + "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": "paymentMethod", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/paymentMethod" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "getInvoiceDownload", + "method": "createCSVImport", "group": null, - "weight": 1035, "cookies": false, "type": "", - "demo": "organizations\/get-invoice-download.md", + "demo": "migrations\/create-csv-import.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-invoice-download.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", "auth": { "Project": [] } @@ -40824,28 +40141,59 @@ ], "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" + "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).", + "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?", + "default": false, + "x-example": false + }, + "onDuplicate": { + "type": "string", + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "default": "fail", + "x-example": "fail", + "enum": [ + "fail", + "skip", + "overwrite" + ], + "x-enum-name": "MigrationOnDuplicate" + } + }, + "required": [ + "bucketId", + "fileId", + "resourceId" + ] + } } ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { + "\/migrations\/firebase": { "post": { - "summary": "Initiate payment for failed invoice to pay live from console", - "operationId": "organizationsCreateInvoicePayment", + "summary": "Create Firebase migration", + "operationId": "migrationsCreateFirebaseMigration", "consumes": [ "application\/json" ], @@ -40853,35 +40201,34 @@ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Initiate payment for failed invoice to pay live from console", + "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": "Invoice", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/invoice" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "createInvoicePayment", + "method": "createFirebaseMigration", "group": null, - "weight": 1036, "cookies": false, "type": "", - "demo": "organizations\/create-invoice-payment.md", - "rate-limit": 10, - "rate-time": 86400, + "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\/create-invoice-payment.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase.md", "auth": { "Project": [] } @@ -40892,83 +40239,85 @@ } ], "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" - }, { "name": "payload", "in": "body", "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" + } + }, + "serviceAccount": { "type": "string", - "description": "Payment method ID", - "default": null, - "x-example": "<PAYMENT_METHOD_ID>" + "description": "JSON of the Firebase service account credentials", + "x-example": "<SERVICE_ACCOUNT>" } }, "required": [ - "paymentMethodId" + "resources", + "serviceAccount" ] } } ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { - "patch": { - "summary": "Validate the payment for an invoice and update status", - "operationId": "organizationsValidateInvoice", - "consumes": [ - "application\/json" - ], + "\/migrations\/firebase\/report": { + "get": { + "summary": "Get Firebase migration report", + "operationId": "migrationsGetFirebaseReport", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", + "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": "Invoice", + "description": "Migration Report", "schema": { - "$ref": "#\/definitions\/invoice" + "$ref": "#\/definitions\/migrationReport" } } }, "deprecated": false, "x-appwrite": { - "method": "validateInvoice", + "method": "getFirebaseReport", "group": null, - "weight": 1033, "cookies": false, "type": "", - "demo": "organizations\/validate-invoice.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\/update-invoice-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase-report.md", "auth": { "Project": [] } @@ -40980,62 +40329,79 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "resources", + "description": "List of resources to migrate", "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "FirebaseMigrationResource" + }, + "in": "query" }, { - "name": "invoiceId", - "description": "Invoice unique ID", + "name": "serviceAccount", + "description": "JSON of the Firebase service account credentials", "required": true, "type": "string", - "x-example": "<INVOICE_ID>", - "in": "path" + "x-example": "<SERVICE_ACCOUNT>", + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { - "get": { - "summary": "View invoice in PDF", - "operationId": "organizationsGetInvoiceView", - "consumes": [], + "\/migrations\/json\/exports": { + "post": { + "summary": "Export documents to JSON", + "operationId": "migrationsCreateJSONExport", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "View invoice in PDF", + "description": "Export documents to a JSON file from your Appwrite database. This endpoint allows you to export documents to a JSON file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.\n", "responses": { - "200": { - "description": "paymentMethod", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/paymentMethod" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "getInvoiceView", + "method": "createJSONExport", "group": null, - "weight": 1034, "cookies": false, "type": "", - "demo": "organizations\/get-invoice-view.md", + "demo": "migrations\/create-json-export.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-invoice-view.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-json-export.md", "auth": { "Project": [] } @@ -41047,61 +40413,94 @@ ], "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}\/keys": { - "get": { - "summary": "List organization keys", - "operationId": "organizationsListKeys", - "consumes": [], + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "resourceId": { + "type": "string", + "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 .json 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.", + "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" + } + }, + "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\/json\/imports": { + "post": { + "summary": "Import documents from a JSON", + "operationId": "migrationsCreateJSONImport", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Get a list of all API keys from the current organization. ", + "description": "Import documents from a JSON file into your Appwrite database. This endpoint allows you to import documents from a JSON file uploaded to Appwrite Storage bucket.\n", "responses": { - "200": { - "description": "API Keys List", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/keyList" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", - "weight": 1048, + "method": "createJSONImport", + "group": null, "cookies": false, "type": "", - "demo": "organizations\/list-keys.md", + "demo": "migrations\/create-json-import.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\/references\/migrations\/migration-json-import.md", "auth": { "Project": [] } @@ -41113,27 +40512,59 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "type": "string", - "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.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "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).", + "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?", + "default": false, + "x-example": false + }, + "onDuplicate": { + "type": "string", + "description": "Behavior when a row with an existing $id is encountered. \"fail\" (default): abort on first conflict. \"skip\": silently ignore. \"overwrite\": replace existing row.", + "default": "fail", + "x-example": "fail", + "enum": [ + "fail", + "skip", + "overwrite" + ], + "x-enum-name": "MigrationOnDuplicate" + } + }, + "required": [ + "bucketId", + "fileId", + "resourceId" + ] + } } ] - }, + } + }, + "\/migrations\/nhost": { "post": { - "summary": "Create organization key", - "operationId": "organizationsCreateKey", + "summary": "Create NHost migration", + "operationId": "migrationsCreateNHostMigration", "consumes": [ "application\/json" ], @@ -41141,34 +40572,34 @@ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Create a new organization API key.", + "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": { - "201": { - "description": "Key", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/key" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "createKey", - "group": "keys", - "weight": 1046, + "method": "createNHostMigration", + "group": null, "cookies": false, "type": "", - "demo": "organizations\/create-key.md", + "demo": "migrations\/create-n-host-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-nhost.md", "auth": { "Project": [] } @@ -41179,102 +40610,123 @@ } ], "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": { - "name": { - "type": "string", - "description": "Key name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "scopes": { + "resources": { "type": "array", - "description": "Key scopes list. Maximum of 100 scopes are allowed.", - "default": null, + "description": "List of resources to migrate", "x-example": null, "items": { "type": "string", "enum": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "NHostMigrationResource" } }, - "expire": { + "subdomain": { "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "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", + "default": 5432, + "x-example": null, + "format": "int32" } }, "required": [ - "name", - "scopes" + "resources", + "subdomain", + "region", + "adminSecret", + "database", + "username", + "password" ] } } ] } }, - "\/organizations\/{organizationId}\/keys\/{keyId}": { + "\/migrations\/nhost\/report": { "get": { - "summary": "Get organization key", - "operationId": "organizationsGetKey", + "summary": "Get NHost migration report", + "operationId": "migrationsGetNHostReport", "consumes": [], "produces": [ "application\/json" ], "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": "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": "Key", + "description": "Migration Report", "schema": { - "$ref": "#\/definitions\/key" + "$ref": "#\/definitions\/migrationReport" } } }, "deprecated": false, "x-appwrite": { - "method": "getKey", - "group": "keys", - "weight": 1050, + "method": "getNHostReport", + "group": null, "cookies": false, "type": "", - "demo": "organizations\/get-key.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\/references\/migrations\/migration-nhost-report.md", "auth": { "Project": [] } @@ -41286,26 +40738,94 @@ ], "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", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "NHostMigrationResource" + }, + "in": "query" + }, + { + "name": "subdomain", + "description": "Source's Subdomain.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" + "x-example": "<SUBDOMAIN>", + "in": "query" }, { - "name": "keyId", - "description": "Key unique ID.", + "name": "region", + "description": "Source's Region.", "required": true, "type": "string", - "x-example": "<KEY_ID>", - "in": "path" + "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.", + "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" } ] - }, - "put": { - "summary": "Update organization key", - "operationId": "organizationsUpdateKey", + } + }, + "\/migrations\/supabase": { + "post": { + "summary": "Create Supabase migration", + "operationId": "migrationsCreateSupabaseMigration", "consumes": [ "application\/json" ], @@ -41313,34 +40833,34 @@ "application\/json" ], "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 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": "Key", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/key" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", - "weight": 1047, + "method": "createSupabaseMigration", + "group": null, "cookies": false, "type": "", - "demo": "organizations\/update-key.md", + "demo": "migrations\/create-supabase-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-supabase.md", "auth": { "Project": [] } @@ -41351,107 +40871,118 @@ } ], "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_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": { + "resources": { "type": "array", - "description": "Key scopes list. Maximum of 100 scopes are allowed.", - "default": null, + "description": "List of resources to migrate", "x-example": null, "items": { "type": "string", "enum": [ - "projects.read", - "projects.write", - "devKeys.read", - "devKeys.write", - "domains.read", - "domains.write", - "keys.read", - "keys.write" + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "SupabaseMigrationResource" } }, - "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.", - "default": null, - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "Source's Supabase Endpoint", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "apiKey": { + "type": "string", + "description": "Source's API Key", + "x-example": "<API_KEY>" + }, + "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": "Source's Database Port", + "default": 5432, + "x-example": null, + "format": "int32" } }, "required": [ - "name", - "scopes" + "resources", + "endpoint", + "apiKey", + "databaseHost", + "username", + "password" ] } } ] - }, - "delete": { - "summary": "Delete organization key", - "operationId": "organizationsDeleteKey", - "consumes": [ - "application\/json" - ], + } + }, + "\/migrations\/supabase\/report": { + "get": { + "summary": "Get Supabase migration report", + "operationId": "migrationsGetSupabaseReport", + "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": "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": { - "204": { - "description": "No content" + "200": { + "description": "Migration Report", + "schema": { + "$ref": "#\/definitions\/migrationReport" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", - "weight": 1049, + "method": "getSupabaseReport", + "group": null, "cookies": false, "type": "", - "demo": "organizations\/delete-key.md", + "demo": "migrations\/get-supabase-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-supabase-report.md", "auth": { "Project": [] } @@ -41463,64 +40994,120 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, - { - "name": "keyId", - "description": "Key unique ID.", + "name": "resources", + "description": "List of resources to migrate", "required": true, - "type": "string", - "x-example": "<KEY_ID>", - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/payment-method": { - "patch": { - "summary": "Set team's payment method", - "operationId": "organizationsSetDefaultPaymentMethod", - "consumes": [ - "application\/json" - ], + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "SupabaseMigrationResource" + }, + "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.", + "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" + } + ] + } + }, + "\/migrations\/{migrationId}": { + "get": { + "summary": "Get migration", + "operationId": "migrationsGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Set a organization's default payment method.", + "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": "setDefaultPaymentMethod", + "method": "get", "group": null, - "weight": 1021, "cookies": false, "type": "", - "demo": "organizations\/set-default-payment-method.md", + "demo": "migrations\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.read", "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\/get-migration.md", "auth": { "Project": [] } @@ -41532,36 +41119,18 @@ ], "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": { - "paymentMethodId": { - "type": "string", - "description": "Unique ID of payment method", - "default": null, - "x-example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "paymentMethodId" - ] - } } ] }, - "delete": { - "summary": "Delete team's default payment method", - "operationId": "organizationsDeleteDefaultPaymentMethod", + "patch": { + "summary": "Update retry migration", + "operationId": "migrationsRetry", "consumes": [ "application\/json" ], @@ -41569,35 +41138,34 @@ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Delete the default payment method for an organization.", + "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDefaultPaymentMethod", + "method": "retry", "group": null, - "weight": 1023, "cookies": false, "type": "", - "demo": "organizations\/delete-default-payment-method.md", + "demo": "migrations\/retry.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\/retry-migration.md", "auth": { "Project": [] } @@ -41609,56 +41177,48 @@ ], "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" } ] - } - }, - "\/organizations\/{organizationId}\/payment-method\/backup": { - "patch": { - "summary": "Set team's backup payment method", - "operationId": "organizationsSetBackupPaymentMethod", + }, + "delete": { + "summary": "Delete migration", + "operationId": "migrationsDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "organizations" + "migrations" ], - "description": "Set an organization's backup payment method.\n", + "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", - "schema": { - "$ref": "#\/definitions\/organization" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "setBackupPaymentMethod", + "method": "delete", "group": null, - "weight": 1022, "cookies": false, "type": "", - "demo": "organizations\/set-backup-payment-method.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-backup-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/delete-migration.md", "auth": { "Project": [] } @@ -41670,221 +41230,252 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "migrationId", + "description": "Migration ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<MIGRATION_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "paymentMethodId": { - "type": "string", - "description": "Unique ID of payment method", - "default": null, - "x-example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "paymentMethodId" - ] - } } ] - }, - "delete": { - "summary": "Delete team's backup payment method", - "operationId": "organizationsDeleteBackupPaymentMethod", - "consumes": [ - "application\/json" - ], + } + }, + "\/organization\/keys": { + "get": { + "summary": "List organization keys", + "operationId": "organizationListKeys", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "organization" ], - "description": "Delete a backup payment method for an organization.", + "description": "Get a list of all API keys from the current organization.", "responses": { "200": { - "description": "Organization", + "description": "API Keys List", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/keyList" } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBackupPaymentMethod", - "group": null, - "weight": 1024, + "method": "listKeys", + "group": "keys", "cookies": false, "type": "", - "demo": "organizations\/delete-backup-payment-method.md", + "demo": "organization\/list-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "organization.keys.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-backup-payment-method.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\/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" } ] - } - }, - "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { - "get": { - "summary": "Get payment method", - "operationId": "organizationsGetPaymentMethod", - "consumes": [], + }, + "post": { + "summary": "Create organization key", + "operationId": "organizationCreateKey", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "organization" ], - "description": "Get an organization's payment method using it's payment method ID.", + "description": "Create a new organization API key.", "responses": { - "200": { - "description": "paymentMethod", + "201": { + "description": "Key", "schema": { - "$ref": "#\/definitions\/paymentMethod" + "$ref": "#\/definitions\/key" } } }, "deprecated": false, "x-appwrite": { - "method": "getPaymentMethod", - "group": null, - "weight": 1020, + "method": "createKey", + "group": "keys", "cookies": false, "type": "", - "demo": "organizations\/get-payment-method.md", + "demo": "organization\/create-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "organization.keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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": { + "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": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes" + } + }, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "keyId", + "name", + "scopes" + ] + } } ] } }, - "\/organizations\/{organizationId}\/plan": { + "\/organization\/keys\/{keyId}": { "get": { - "summary": "Get organization billing plan details", - "operationId": "organizationsGetPlan", + "summary": "Get organization key", + "operationId": "organizationGetKey", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "organization" ], - "description": "Get the details of the current billing plan for an organization.", + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including its scopes.", "responses": { "200": { - "description": "billingPlan", + "description": "Key", "schema": { - "$ref": "#\/definitions\/billingPlan" + "$ref": "#\/definitions\/key" } } }, "deprecated": false, "x-appwrite": { - "method": "getPlan", - "group": null, - "weight": 1011, + "method": "getKey", + "group": "keys", "cookies": false, "type": "", - "demo": "organizations\/get-plan.md", + "demo": "organization\/get-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "organization.keys.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "keyId", + "description": "Key unique ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<KEY_ID>", "in": "path" } ] }, - "patch": { - "summary": "Update organization billing plan", - "operationId": "organizationsUpdatePlan", + "put": { + "summary": "Update organization key", + "operationId": "organizationUpdateKey", "consumes": [ "application\/json" ], @@ -41892,51 +41483,51 @@ "application\/json" ], "tags": [ - "organizations" + "organization" ], - "description": "Update the billing plan for an organization.", + "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": "Organization", + "description": "Key", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/key" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePlan", - "group": null, - "weight": 1012, + "method": "updateKey", + "group": "keys", "cookies": false, "type": "", - "demo": "organizations\/update-plan.md", - "rate-limit": 10, + "demo": "organization\/update-key.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "organization.keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "keyId", + "description": "Key unique ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<KEY_ID>", "in": "path" }, { @@ -41945,432 +41536,463 @@ "schema": { "type": "object", "properties": { - "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": { + "name": { "type": "string", - "description": "Unique ID of billing address", - "default": "", - "x-example": "<BILLING_ADDRESS_ID>" + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "invites": { + "scopes": { "type": "array", - "description": "Additional member invites", - "default": [], + "description": "Key scopes list. Maximum of 100 scopes are allowed.", "x-example": null, "items": { - "type": "string" + "type": "string", + "enum": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes" } }, - "couponId": { - "type": "string", - "description": "Coupon id", - "default": null, - "x-example": "<COUPON_ID>", - "x-nullable": true - }, - "taxId": { + "expire": { "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", + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } }, "required": [ - "billingPlan" + "name", + "scopes" ] } } ] - } - }, - "\/organizations\/{organizationId}\/plan\/cancel": { - "patch": { - "summary": "Cancel organization plan change", - "operationId": "organizationsCancelDowngrade", + }, + "delete": { + "summary": "Delete organization key", + "operationId": "organizationDeleteKey", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "organizations" + "organization" ], - "description": "Cancel the downgrade initiated for an organization.", + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", "responses": { - "200": { - "description": "Organization", - "schema": { - "$ref": "#\/definitions\/organization" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "cancelDowngrade", - "group": null, - "weight": 1013, + "method": "deleteKey", + "group": "keys", "cookies": false, "type": "", - "demo": "organizations\/cancel-downgrade.md", + "demo": "organization\/delete-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "organization.keys.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/cancel-downgrade.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "keyId", + "description": "Key unique ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<KEY_ID>", "in": "path" } ] } }, - "\/organizations\/{organizationId}\/plan\/estimations": { - "post": { - "summary": "Create billing plan estimation (upgrade or downgrade)", - "operationId": "organizationsCreatePlanEstimation", - "consumes": [ - "application\/json" - ], + "\/organization\/projects": { + "get": { + "summary": "List organization projects", + "operationId": "organizationListProjects", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "organization" ], - "description": "Create a billing plan estimation for upgrading or downgrading an organization plan.\n", + "description": "Get a list of all projects. You can use the query params to filter your results.", "responses": { "200": { - "description": "EstimationPlanChange", + "description": "Projects List", "schema": { - "$ref": "#\/definitions\/estimationPlanChange" + "$ref": "#\/definitions\/projectList" } } }, "deprecated": false, "x-appwrite": { - "method": "createPlanEstimation", - "group": null, - "weight": 1042, + "method": "listProjects", + "group": "projects", "cookies": false, "type": "", - "demo": "organizations\/create-plan-estimation.md", - "rate-limit": 10, + "demo": "organization\/list-projects.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "projects.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-plan-estimation.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, teamId, labels, search", + "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": "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 organization project", + "operationId": "organizationCreateProject", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "organization" + ], + "description": "Create a new project.", + "responses": { + "201": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createProject", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/create-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "billingPlan": { + "projectId": { "type": "string", - "description": "Target billing plan", - "default": null, - "x-example": "tier-0" + "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 }, - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "name": { + "type": "string", + "description": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "couponId": { + "region": { "type": "string", - "description": "Coupon id", - "default": null, - "x-example": "<COUPON_ID>", - "x-nullable": true + "description": "Project Region.", + "x-example": "fra", + "enum": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" + ], + "x-enum-name": "Region" } }, "required": [ - "billingPlan" + "projectId", + "name" ] } } ] } }, - "\/organizations\/{organizationId}\/regions": { + "\/organization\/projects\/{projectId}": { "get": { - "summary": "List Regions", - "operationId": "organizationsListRegions", + "summary": "Get organization project", + "operationId": "organizationGetProject", "consumes": [], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "organizations" + "organization" ], - "description": "Get all available regions for an organization.", + "description": "Get a project.", "responses": { "200": { - "description": "Regions list", + "description": "Project", "schema": { - "$ref": "#\/definitions\/consoleRegionList" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "listRegions", - "group": null, - "weight": 1040, + "method": "getProject", + "group": "projects", "cookies": false, "type": "", - "demo": "organizations\/list-regions.md", + "demo": "organization\/get-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": "projects.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-regions.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Team ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<PROJECT_ID>", "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/roles": { - "get": { - "summary": "Get Scopes", - "operationId": "organizationsGetScopes", - "consumes": [], + }, + "patch": { + "summary": "Update organization project", + "operationId": "organizationUpdateProject", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "organization" ], - "description": "Get Scopes", + "description": "Update a project by its unique ID.", "responses": { "200": { - "description": "Roles", + "description": "Project", "schema": { - "$ref": "#\/definitions\/roles" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "getScopes", - "group": null, - "weight": 1039, + "method": "updateProject", + "group": "projects", "cookies": false, "type": "", - "demo": "organizations\/get-scopes.md", + "demo": "organization\/update-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "projects.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-scopes.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization id", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<PROJECT_ID>", "in": "path" }, { - "name": "projectId", - "description": "Project id", - "required": false, - "type": "string", - "x-example": "<PROJECT_ID>", - "default": "", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "name" + ] + } } ] - } - }, - "\/organizations\/{organizationId}\/taxId": { - "patch": { - "summary": "Set team's tax Id", - "operationId": "organizationsSetBillingTaxId", + }, + "delete": { + "summary": "Delete organization project", + "operationId": "organizationDeleteProject", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "organizations" + "organization" ], - "description": "Set an organization's billing tax ID.", + "description": "Delete a project by its unique ID.", "responses": { - "200": { - "description": "Organization", - "schema": { - "$ref": "#\/definitions\/organization" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "setBillingTaxId", - "group": null, - "weight": 1015, + "method": "deleteProject", + "group": "projects", "cookies": false, "type": "", - "demo": "organizations\/set-billing-tax-id.md", + "demo": "organization\/delete-project.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "projects.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-tax-id.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<PROJECT_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "taxId": { - "type": "string", - "description": "Tax Id associated to billing.", - "default": null, - "x-example": "<TAX_ID>", - "x-nullable": true - } - }, - "required": [ - "taxId" - ] - } } ] } }, - "\/organizations\/{organizationId}\/usage": { + "\/organizations": { "get": { - "summary": "Get team's usage data", - "operationId": "organizationsGetUsage", + "summary": "List Orgnizations", + "operationId": "organizationsList", "consumes": [], "produces": [ "application\/json" @@ -42378,23 +42000,22 @@ "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", "schema": { - "$ref": "#\/definitions\/usageOrganization" + "$ref": "#\/definitions\/organizationList" } } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "list", "group": null, - "weight": 1016, "cookies": false, "type": "", - "demo": "organizations\/get-usage.md", + "demo": "organizations\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -42404,7 +42025,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": [] } @@ -42416,38 +42037,31 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "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, - "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00", + "type": "array", + "collectionFormat": "multi", + "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, "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00", + "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", "consumes": [ "application\/json" ], @@ -42457,33 +42071,39 @@ "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", "schema": { - "$ref": "#\/definitions\/organization" + "x-oneOf": [ + { + "$ref": "#\/definitions\/organization" + }, + { + "$ref": "#\/definitions\/paymentAuthentication" + } + ] } } }, "deprecated": false, "x-appwrite": { - "method": "validatePayment", + "method": "create", "group": null, - "weight": 1038, "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": [] } @@ -42494,20 +42114,40 @@ } ], "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_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.", + "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", + "default": "", + "x-example": "<BILLING_ADDRESS_ID>", + "x-nullable": true + }, "invites": { "type": "array", "description": "Additional member invites", @@ -42516,138 +42156,185 @@ "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", + "default": "appwrite", + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": "Platform" } - } + }, + "required": [ + "organizationId", + "name", + "billingPlan" + ] } } ] } }, - "\/presences": { - "get": { - "summary": "List presences", - "operationId": "presencesList", - "consumes": [], + "\/organizations\/estimations\/create-organization": { + "patch": { + "summary": "Estimate create Organization", + "operationId": "organizationsEstimationCreateOrganization", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "presences" + "organizations" ], - "description": "List presence logs. Expired entries are filtered out automatically.\n", + "description": "Get estimation for creating an organization.", "responses": { "200": { - "description": "Presences List", + "description": "Estimation", "schema": { - "$ref": "#\/definitions\/presenceList" + "$ref": "#\/definitions\/estimation" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "presences", - "weight": 419, + "method": "estimationCreateOrganization", + "group": null, "cookies": false, "type": "", - "demo": "presences\/list.md", - "rate-limit": 0, + "demo": "organizations\/estimation-create-organization.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", + "scope": "teams.write", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-create-organization.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK.", - "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": "ttl", - "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" + "name": "payload", + "in": "body", + "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", + "default": [], + "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", + "default": "appwrite", + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": "Platform" + } + }, + "required": [ + "billingPlan" + ] + } } ] } }, - "\/presences\/usage": { - "get": { - "summary": "Get presence usage", - "operationId": "presencesGetUsage", - "consumes": [], + "\/organizations\/{organizationId}": { + "delete": { + "summary": "Delete team", + "operationId": "organizationsDelete", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "presences" + "organizations" ], - "description": "Get presence usage metrics, including the current total of online users and historical online user counts for the selected time range.\n", + "description": "Delete an organization.", "responses": { - "200": { - "description": "UsagePresence", - "schema": { - "$ref": "#\/definitions\/usagePresence" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "delete", "group": null, - "weight": 417, "cookies": false, "type": "", - "demo": "presences\/get-usage.md", + "demo": "organizations\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", + "scope": "organizations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", "auth": { "Project": [] } @@ -42659,90 +42346,78 @@ ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "organizationId", + "description": "Team ID.", + "required": true, "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [], - "default": "30d", - "in": "query" + "x-example": "<ORGANIZATION_ID>", + "in": "path" } ] } }, - "\/presences\/{presenceId}": { + "\/organizations\/{organizationId}\/addons": { "get": { - "summary": "Get presence", - "operationId": "presencesGet", + "summary": "List addons", + "operationId": "organizationsListAddons", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "presences" + "organizations" ], - "description": "Get a presence log by its unique ID. Entries whose `expiresAt` is in the past are treated as not found.\n", + "description": "List all billing addons for an organization.\n", "responses": { "200": { - "description": "Presence", + "description": "Addons list", "schema": { - "$ref": "#\/definitions\/presence" + "$ref": "#\/definitions\/addonList" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "presences", - "weight": 418, + "method": "listAddons", + "group": null, "cookies": false, "type": "", - "demo": "presences\/get.md", + "demo": "organizations\/list-addons.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.read", + "scope": "billing.read", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-addons.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "presenceId", - "description": "Presence unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PRESENCE_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" } ] - }, - "put": { - "summary": "Upsert presence", - "operationId": "presencesUpsert", + } + }, + "\/organizations\/{organizationId}\/addons\/baa": { + "post": { + "summary": "Create BAA addon", + "operationId": "organizationsCreateBaaAddon", "consumes": [ "application\/json" ], @@ -42750,286 +42425,133 @@ "application\/json" ], "tags": [ - "presences" + "organizations" ], - "description": "Create or update a presence log by its user ID.\n", + "description": "Create the BAA billing addon for an organization.\n", "responses": { - "200": { - "description": "Presence", + "201": { + "description": "Addon", "schema": { - "$ref": "#\/definitions\/presence" + "$ref": "#\/definitions\/addon" } } }, "deprecated": false, "x-appwrite": { - "method": "upsert", - "group": "presences", - "weight": 416, + "method": "createBaaAddon", + "group": null, "cookies": false, "type": "", - "demo": "presences\/upsert.md", - "rate-limit": 0, + "demo": "organizations\/create-baa-addon.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", + "scope": "billing.write", "platforms": [ - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/upsert.md", - "methods": [ - { - "name": "upsert", - "namespace": "presences", - "desc": "Upsert presence", - "auth": { - "Project": [] - }, - "parameters": [ - "presenceId", - "userId", - "status", - "permissions", - "expiresAt", - "metadata" - ], - "required": [ - "presenceId", - "userId", - "status" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/presence" - } - ], - "description": "Create or update a presence log by its user ID.\n", - "demo": "presences\/upsert.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-baa-addon.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Session": [] + "Project": [] } ], "parameters": [ { - "name": "presenceId", - "description": "Presence unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PRESENCE_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "default": null, - "x-example": "<USER_ID>" - }, - "status": { - "type": "string", - "description": "Presence status.", - "default": null, - "x-example": "<STATUS>" - }, - "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" - } - }, - "expiresAt": { - "type": "string", - "description": "Presence expiry datetime.", - "default": null, - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - }, - "metadata": { - "type": "object", - "description": "Presence metadata object.", - "default": [], - "x-example": "{}" - } - }, - "required": [ - "status" - ] - } } ] - }, - "patch": { - "summary": "Update presence", - "operationId": "presencesUpdate", - "consumes": [ - "application\/json" - ], + } + }, + "\/organizations\/{organizationId}\/addons\/{addonId}": { + "get": { + "summary": "Get addon", + "operationId": "organizationsGetAddon", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "presences" + "organizations" ], - "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "description": "Get the details of a billing addon for an organization.\n", "responses": { "200": { - "description": "Presence", + "description": "Addon", "schema": { - "$ref": "#\/definitions\/presence" + "$ref": "#\/definitions\/addon" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "presences", - "weight": 420, + "method": "getAddon", + "group": null, "cookies": false, "type": "", - "demo": "presences\/update.md", + "demo": "organizations\/get-addon.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", + "scope": "billing.read", "platforms": [ - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/update.md", - "methods": [ - { - "name": "updatePresence", - "namespace": "presences", - "desc": "Update presence", - "auth": { - "Project": [] - }, - "parameters": [ - "presenceId", - "userId", - "status", - "expiresAt", - "metadata", - "permissions", - "purge" - ], - "required": [ - "presenceId", - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/presence" - } - ], - "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", - "demo": "presences\/update-presence.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-addon.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Session": [] + "Project": [] } ], "parameters": [ { - "name": "presenceId", - "description": "Presence unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PRESENCE_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "default": null, - "x-example": "<USER_ID>" - }, - "status": { - "type": "string", - "description": "Presence status.", - "default": null, - "x-example": "<STATUS>" - }, - "expiresAt": { - "type": "string", - "description": "Presence expiry datetime.", - "default": null, - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" - }, - "metadata": { - "type": "object", - "description": "Presence metadata object.", - "default": {}, - "x-example": "{}" - }, - "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" - } - }, - "purge": { - "type": "boolean", - "description": "When true, purge cached responses used by list presences endpoint.", - "default": false, - "x-example": false - } - } - } + "name": "addonId", + "description": "Addon ID", + "required": true, + "type": "string", + "x-example": "<ADDON_ID>", + "in": "path" } ] }, "delete": { - "summary": "Delete presence", - "operationId": "presencesDelete", + "summary": "Delete addon", + "operationId": "organizationsDeleteAddon", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "presences" + "organizations" ], - "description": "Delete a presence log by its unique ID.\n", + "description": "Delete a billing addon for an organization.\n", "responses": { "204": { "description": "No content" @@ -43037,307 +42559,348 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "presences", - "weight": 421, + "method": "deleteAddon", + "group": null, "cookies": false, "type": "", - "demo": "presences\/delete.md", - "rate-limit": 0, + "demo": "organizations\/delete-addon.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "presences.write", + "scope": "billing.write", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-addon.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "presenceId", - "description": "Presence unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PRESENCE_ID>", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "type": "string", + "x-example": "<ADDON_ID>", "in": "path" } ] } }, - "\/project": { - "get": { - "summary": "Get project", - "operationId": "projectGet", - "consumes": [], - "produces": [], + "\/organizations\/{organizationId}\/addons\/{addonId}\/confirmations": { + "post": { + "summary": "Confirm addon payment after 3DS authentication", + "operationId": "organizationsConfirmAddonPayment", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], "tags": [ - "project" + "organizations" ], - "description": "Get a project.", + "description": "Confirm payment for a billing addon for an organization.\n", "responses": { "200": { - "description": "Project", + "description": "Addon", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/addon" } } }, "deprecated": false, "x-appwrite": { - "method": "get", + "method": "confirmAddonPayment", "group": null, - "weight": 1109, "cookies": false, "type": "", - "demo": "project\/get.md", - "rate-limit": 0, + "demo": "organizations\/confirm-addon-payment.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.read", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/confirm-addon-payment.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, + { + "name": "addonId", + "description": "Addon ID", + "required": true, + "type": "string", + "x-example": "<ADDON_ID>", + "in": "path" } ] - }, - "delete": { - "summary": "Delete project", - "operationId": "projectDelete", - "consumes": [ + } + }, + "\/organizations\/{organizationId}\/addons\/{addon}\/price": { + "get": { + "summary": "Get addon price", + "operationId": "organizationsGetAddonPrice", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "project" + "organizations" ], - "description": "Delete a project.", + "description": "Get the price details for a billing addon for an organization.\n", "responses": { - "204": { - "description": "No content" - } + "200": { + "description": "AddonPrice", + "schema": { + "$ref": "#\/definitions\/addonPrice" + } + } }, "deprecated": false, "x-appwrite": { - "method": "delete", + "method": "getAddonPrice", "group": null, - "weight": 1108, "cookies": false, "type": "", - "demo": "project\/delete.md", + "demo": "organizations\/get-addon-price.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-addon-price.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, + { + "name": "addon", + "description": "Addon key identifier (e.g. baa).", + "required": true, + "type": "string", + "x-example": "baa", + "enum": [ + "baa", + "backup_recovery" + ], + "x-enum-name": "OrganizationAddon", + "in": "path" } ] } }, - "\/project\/auth-methods\/{methodId}": { - "patch": { - "summary": "Update project auth method status", - "operationId": "projectUpdateAuthMethod", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/aggregations": { + "get": { + "summary": "List aggregations", + "operationId": "organizationsListAggregations", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", + "description": "Get a list of all aggregations for an organization.", "responses": { "200": { - "description": "Project", + "description": "Aggregation team list", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/aggregationTeamList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateAuthMethod", + "method": "listAggregations", "group": null, - "weight": 1158, "cookies": false, "type": "", - "demo": "project\/update-auth-method.md", + "demo": "organizations\/list-aggregations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-aggregations.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "methodId", - "description": "Auth Method ID. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "email-password", - "enum": [ - "email-password", - "magic-url", - "email-otp", - "anonymous", - "invites", - "jwt", - "phone" - ], - "x-enum-name": "ProjectAuthMethodId", - "x-enum-keys": [], + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Auth method status.", - "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, from, to", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] } }, - "\/project\/keys": { + "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { "get": { - "summary": "List project keys", - "operationId": "projectListKeys", + "summary": "Get aggregation", + "operationId": "organizationsGetAggregation", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Get a list of all API keys from the current project.", + "description": "Get a specific aggregation using it's aggregation ID.", "responses": { "200": { - "description": "API Keys List", + "description": "Team", "schema": { - "$ref": "#\/definitions\/keyList" + "$ref": "#\/definitions\/aggregationTeam" } } }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", - "weight": 1125, + "method": "getAggregation", + "group": null, "cookies": false, "type": "", - "demo": "project\/list-keys.md", + "demo": "organizations\/get-aggregation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-aggregation.md", "auth": { "Project": [] } }, "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: expire, accessedAt, name, scopes", + "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": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], + "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 key", - "operationId": "projectCreateKey", + } + }, + "\/organizations\/{organizationId}\/billing-address": { + "patch": { + "summary": "Set team's billing address", + "operationId": "organizationsSetBillingAddress", "consumes": [ "application\/json" ], @@ -43345,194 +42908,197 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create an ephemeral API key if you need a short-lived key instead.", + "description": "Set a billing address for an organization.", "responses": { - "201": { - "description": "Key", + "200": { + "description": "Organization", "schema": { - "$ref": "#\/definitions\/key" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "createKey", - "group": "keys", - "weight": 1123, + "method": "setBillingAddress", + "group": null, "cookies": false, "type": "", - "demo": "project\/create-key.md", + "demo": "organizations\/set-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-address.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_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": null, - "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, - "items": { - "type": "string", - "enum": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "templates.read", - "templates.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [] - } - }, - "expire": { + "billingAddressId": { "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true + "description": "Unique ID of billing address", + "x-example": "<BILLING_ADDRESS_ID>" } }, "required": [ - "keyId", - "name", - "scopes" + "billingAddressId" ] } } ] + }, + "delete": { + "summary": "Delete team's billing address", + "operationId": "organizationsDeleteBillingAddress", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "organizations" + ], + "description": "Delete a team's billing address.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteBillingAddress", + "group": null, + "cookies": false, + "type": "", + "demo": "organizations\/delete-billing-address.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-billing-address.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { + "get": { + "summary": "Get billing address", + "operationId": "organizationsGetBillingAddress", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "organizations" + ], + "description": "Get a billing address using it's ID.", + "responses": { + "200": { + "description": "Address", + "schema": { + "$ref": "#\/definitions\/billingAddress" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getBillingAddress", + "group": null, + "cookies": false, + "type": "", + "demo": "organizations\/get-billing-address.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-billing-address.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, + { + "name": "billingAddressId", + "description": "Unique ID of billing address", + "required": true, + "type": "string", + "x-example": "<BILLING_ADDRESS_ID>", + "in": "path" + } + ] } }, - "\/project\/keys\/ephemeral": { - "post": { - "summary": "Create ephemeral project key", - "operationId": "projectCreateEphemeralKey", + "\/organizations\/{organizationId}\/billing-email": { + "patch": { + "summary": "Set team's billing email", + "operationId": "organizationsSetBillingEmail", "consumes": [ "application\/json" ], @@ -43540,635 +43106,436 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Create a new ephemeral API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create a standard API key if you need a longer-lived key instead.", + "description": "Set the current billing email for the organization.", "responses": { - "201": { - "description": "Ephemeral Key", + "200": { + "description": "Organization", "schema": { - "$ref": "#\/definitions\/ephemeralKey" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "createEphemeralKey", - "group": "keys", - "weight": 1124, + "method": "setBillingEmail", + "group": null, "cookies": false, "type": "", - "demo": "project\/create-ephemeral-key.md", + "demo": "organizations\/set-billing-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-email.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 100 scopes are allowed.", - "default": null, - "x-example": null, - "items": { - "type": "string", - "enum": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "templates.read", - "templates.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [] - } - }, - "duration": { - "type": "integer", - "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", - "default": null, - "x-example": "600", - "format": "int32" + "billingEmail": { + "type": "string", + "description": "Billing email for the organization.", + "x-example": "email@example.com", + "format": "email" } }, "required": [ - "scopes", - "duration" + "billingEmail" ] } } ] } }, - "\/project\/keys\/{keyId}": { - "get": { - "summary": "Get project key", - "operationId": "projectGetKey", - "consumes": [], + "\/organizations\/{organizationId}\/budget": { + "patch": { + "summary": "Update organization budget", + "operationId": "organizationsUpdateBudget", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Get a key by its unique ID. ", + "description": "Update the budget limit for an organization.", "responses": { "200": { - "description": "Key", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/key" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "getKey", - "group": "keys", - "weight": 1126, + "method": "updateBudget", + "group": null, "cookies": false, "type": "", - "demo": "project\/get-key.md", + "demo": "organizations\/update-budget.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-budget.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "keyId", - "description": "Key ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "x-example": "<KEY_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "budget": { + "type": "integer", + "description": "Budget limit for additional usage set for the organization", + "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": [ + "budget" + ] + } } ] - }, - "put": { - "summary": "Update project key", - "operationId": "projectUpdateKey", - "consumes": [ - "application\/json" - ], + } + }, + "\/organizations\/{organizationId}\/credits": { + "get": { + "summary": "List credits", + "operationId": "organizationsListCredits", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "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": "List all credits for an organization.\n", "responses": { "200": { - "description": "Key", + "description": "CreditList", "schema": { - "$ref": "#\/definitions\/key" + "$ref": "#\/definitions\/creditList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", - "weight": 1128, + "method": "listCredits", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-key.md", + "demo": "organizations\/list-credits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-credits.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "keyId", - "description": "Key ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<KEY_ID>", + "x-example": "<ORGANIZATION_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": [ - "project.read", - "project.write", - "keys.read", - "keys.write", - "platforms.read", - "platforms.write", - "mocks.read", - "mocks.write", - "policies.read", - "policies.write", - "project.policies.read", - "project.policies.write", - "templates.read", - "templates.write", - "oauth2.read", - "oauth2.write", - "users.read", - "users.write", - "sessions.read", - "sessions.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "tables.read", - "tables.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "rows.read", - "rows.write", - "collections.read", - "collections.write", - "attributes.read", - "attributes.write", - "documents.read", - "documents.write", - "buckets.read", - "buckets.write", - "files.read", - "files.write", - "tokens.read", - "tokens.write", - "functions.read", - "functions.write", - "executions.read", - "executions.write", - "execution.read", - "execution.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "providers.read", - "providers.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "messages.read", - "messages.write", - "rules.read", - "rules.write", - "webhooks.read", - "webhooks.write", - "locale.read", - "avatars.read", - "health.read", - "assistant.read", - "migrations.read", - "migrations.write", - "schedules.read", - "schedules.write", - "vcs.read", - "vcs.write", - "insights.read", - "insights.write", - "reports.read", - "reports.write", - "presences.read", - "presences.write", - "backups.policies.read", - "backups.policies.write", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read", - "usage.read" - ], - "x-enum-name": "ProjectKeyScopes", - "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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - } - }, - "required": [ - "name", - "scopes" - ] - } + "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" } ] }, - "delete": { - "summary": "Delete project key", - "operationId": "projectDeleteKey", + "post": { + "summary": "Add credits from coupon", + "operationId": "organizationsAddCredit", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "project" + "organizations" ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "description": "Add credit to an organization using a coupon.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Credit", + "schema": { + "$ref": "#\/definitions\/credit" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", - "weight": 1127, + "method": "addCredit", + "group": null, "cookies": false, "type": "", - "demo": "project\/delete-key.md", - "rate-limit": 0, + "demo": "organizations\/add-credit.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/add-credit.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "keyId", - "description": "Key ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<KEY_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "couponId": { + "type": "string", + "description": "ID of the coupon", + "x-example": "<COUPON_ID>" + } + }, + "required": [ + "couponId" + ] + } } ] } }, - "\/project\/labels": { - "put": { - "summary": "Update project labels", - "operationId": "projectUpdateLabels", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/credits\/available": { + "get": { + "summary": "Get available credits", + "operationId": "organizationsGetAvailableCredits", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project labels. Labels can be used to easily filter projects in an organization.", + "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": "updateLabels", + "method": "getAvailableCredits", "group": null, - "weight": 1110, "cookies": false, "type": "", - "demo": "project\/update-labels.md", + "demo": "organizations\/get-available-credits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-available-credits.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "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": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" } ] } }, - "\/project\/mock-phones": { + "\/organizations\/{organizationId}\/credits\/{creditId}": { "get": { - "summary": "List project mock phones", - "operationId": "projectListMockPhones", + "summary": "Get credit details", + "operationId": "organizationsGetCredit", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Get a list of all mock phones in the project. This endpoint returns an array of all mock phones and their OTPs.", + "description": "Get credit details.", "responses": { "200": { - "description": "Mock Numbers List", + "description": "Credit", "schema": { - "$ref": "#\/definitions\/mockNumberList" + "$ref": "#\/definitions\/credit" } } }, "deprecated": false, "x-appwrite": { - "method": "listMockPhones", - "group": "mocks", - "weight": 1143, + "method": "getCredit", + "group": null, "cookies": false, "type": "", - "demo": "project\/list-mock-phones.md", + "demo": "organizations\/get-credit.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.read", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-credit.md", "auth": { "Project": [] } }, "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "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.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "creditId", + "description": "Credit Unique ID", + "required": true, + "type": "string", + "x-example": "<CREDIT_ID>", + "in": "path" } ] - }, - "post": { - "summary": "Create project mock phone", - "operationId": "projectCreateMockPhone", + } + }, + "\/organizations\/{organizationId}\/estimations\/delete-organization": { + "patch": { + "summary": "Estimate delete team", + "operationId": "organizationsEstimationDeleteOrganization", "consumes": [ "application\/json" ], @@ -44176,138 +43543,151 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Create a new mock phone for your project. Use this endpoint to register a mock phone number and its sign-in OTP for your testers.", + "description": "Get estimation for deleting an organization.", "responses": { - "201": { - "description": "Mock Number", + "200": { + "description": "DeleteOrganization", "schema": { - "$ref": "#\/definitions\/mockNumber" + "$ref": "#\/definitions\/estimationDeleteOrganization" } } }, "deprecated": false, "x-appwrite": { - "method": "createMockPhone", - "group": "mocks", - "weight": 1142, + "method": "estimationDeleteOrganization", + "group": null, "cookies": false, "type": "", - "demo": "project\/create-mock-phone.md", - "rate-limit": 0, + "demo": "organizations\/estimation-delete-organization.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", + "scope": "organizations.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-delete-organization.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", - "default": null, - "x-example": "+12065550100", - "format": "phone" - }, - "otp": { - "type": "string", - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "default": null, - "x-example": "<OTP>" - } - }, - "required": [ - "number", - "otp" - ] - } + "name": "organizationId", + "description": "Team ID.", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" } ] } }, - "\/project\/mock-phones\/{number}": { - "get": { - "summary": "Get project mock phone", - "operationId": "projectGetMockPhone", - "consumes": [], + "\/organizations\/{organizationId}\/estimations\/update-plan": { + "patch": { + "summary": "Estimate for update plan", + "operationId": "organizationsEstimationUpdatePlan", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", + "description": "Get estimation for updating the organization plan.", "responses": { "200": { - "description": "Mock Number", + "description": "UpdatePlan", "schema": { - "$ref": "#\/definitions\/mockNumber" + "$ref": "#\/definitions\/estimationUpdatePlan" } } }, "deprecated": false, "x-appwrite": { - "method": "getMockPhone", - "group": "mocks", - "weight": 1144, + "method": "estimationUpdatePlan", + "group": null, "cookies": false, "type": "", - "demo": "project\/get-mock-phone.md", - "rate-limit": 0, + "demo": "organizations\/estimation-update-plan.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.read", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-update-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "format": "phone", - "x-example": "+12065550100", + "x-example": "<ORGANIZATION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "type": "string", + "description": "Organization billing plan chosen", + "x-example": "tier-0" + }, + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true + } + }, + "required": [ + "billingPlan" + ] + } } ] - }, - "put": { - "summary": "Update project mock phone", - "operationId": "projectUpdateMockPhone", + } + }, + "\/organizations\/{organizationId}\/feedbacks\/downgrade": { + "post": { + "summary": "Create downgrade feedback", + "operationId": "organizationsCreateDowngradeFeedback", "consumes": [ "application\/json" ], @@ -44315,53 +43695,50 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update a mock phone by its unique number. Use this endpoint to update the mock phone's OTP.", + "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": "Mock Number", + "201": { + "description": "Downgrade Feedback", "schema": { - "$ref": "#\/definitions\/mockNumber" + "$ref": "#\/definitions\/downgradeFeedback" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMockPhone", - "group": "mocks", - "weight": 1145, + "method": "createDowngradeFeedback", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-mock-phone.md", + "demo": "organizations\/create-downgrade-feedback.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-downgrade-feedback.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "format": "phone", - "x-example": "+12065550100", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -44370,238 +43747,244 @@ "schema": { "type": "object", "properties": { - "otp": { + "reason": { "type": "string", - "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "default": null, - "x-example": "<OTP>" + "description": "Feedback reason", + "x-example": "<REASON>" + }, + "message": { + "type": "string", + "description": "Feedback message", + "x-example": "<MESSAGE>" + }, + "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": [ - "otp" + "reason", + "message", + "fromPlanId", + "toPlanId" ] } } ] - }, - "delete": { - "summary": "Delete project mock phone", - "operationId": "projectDeleteMockPhone", - "consumes": [ + } + }, + "\/organizations\/{organizationId}\/invoices": { + "get": { + "summary": "List invoices", + "operationId": "organizationsListInvoices", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "project" + "organizations" ], - "description": "Delete a mock phone by its unique number. This endpoint removes the mock phone and its OTP configuration from the project.", + "description": "List all invoices for an organization.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Billing invoices list", + "schema": { + "$ref": "#\/definitions\/invoiceList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteMockPhone", - "group": "mocks", - "weight": 1146, + "method": "listInvoices", + "group": null, "cookies": false, "type": "", - "demo": "project\/delete-mock-phone.md", + "demo": "organizations\/list-invoices.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "mocks.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-invoices.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "number", - "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "format": "phone", - "x-example": "+12065550100", + "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, type, amount, currency, from, to, dueAt, attempts, status, grossAmount", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] } }, - "\/project\/oauth2": { + "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { "get": { - "summary": "List project OAuth2 providers", - "operationId": "projectListOAuth2Providers", + "summary": "Get invoice", + "operationId": "organizationsGetInvoice", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Get a list of all OAuth2 providers supported by the server, along with the project's configuration for each. Credential fields are write-only and always returned empty.", + "description": "Get an invoice by its unique ID.", "responses": { "200": { - "description": "OAuth2 Providers List", + "description": "Invoice", "schema": { - "$ref": "#\/definitions\/oAuth2ProviderList" + "$ref": "#\/definitions\/invoice" } } }, "deprecated": false, "x-appwrite": { - "method": "listOAuth2Providers", - "group": "oauth2", - "weight": 1159, + "method": "getInvoice", + "group": null, "cookies": false, "type": "", - "demo": "project\/list-o-auth-2-providers.md", + "demo": "organizations\/get-invoice.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.read", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice.md", "auth": { "Project": [] } }, "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "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.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "type": "string", + "x-example": "<INVOICE_ID>", + "in": "path" } ] } }, - "\/project\/oauth2\/amazon": { - "patch": { - "summary": "Update project OAuth2 Amazon", - "operationId": "projectUpdateOAuth2Amazon", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { + "get": { + "summary": "Download invoice in PDF", + "operationId": "organizationsGetInvoiceDownload", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Amazon configuration.", + "description": "Download invoice in PDF", "responses": { "200": { - "description": "OAuth2Amazon", + "description": "paymentMethod", "schema": { - "$ref": "#\/definitions\/oAuth2Amazon" + "$ref": "#\/definitions\/paymentMethod" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Amazon", - "group": "oauth2", - "weight": 1186, + "method": "getInvoiceDownload", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-amazon.md", + "demo": "organizations\/get-invoice-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-download.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "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" } ] } }, - "\/project\/oauth2\/apple": { - "patch": { - "summary": "Update project OAuth2 Apple", - "operationId": "projectUpdateOAuth2Apple", + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { + "post": { + "summary": "Initiate payment for failed invoice to pay live from console", + "operationId": "organizationsCreateInvoicePayment", "consumes": [ "application\/json" ], @@ -44609,97 +43992,84 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Apple configuration.", + "description": "Initiate payment for failed invoice to pay live from console", "responses": { "200": { - "description": "OAuth2Apple", + "description": "Invoice", "schema": { - "$ref": "#\/definitions\/oAuth2Apple" + "$ref": "#\/definitions\/invoice" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Apple", - "group": "oauth2", - "weight": 1201, + "method": "createInvoicePayment", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-apple.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": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-invoice-payment.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "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" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "serviceId": { - "type": "string", - "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", - "default": null, - "x-example": "<SERVICE_ID>", - "x-nullable": true - }, - "keyId": { - "type": "string", - "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", - "default": null, - "x-example": "<KEY_ID>", - "x-nullable": true - }, - "teamId": { - "type": "string", - "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", - "default": null, - "x-example": "<TEAM_ID>", - "x-nullable": true - }, - "p8File": { + "paymentMethodId": { "type": "string", - "description": "Contents of the Apple OAuth2 app .p8 private key file. The secret key wrapped by the PEM markers is 200 characters long. For example: -----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", - "default": null, - "x-example": "<P8_FILE>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true + "description": "Payment method ID", + "x-example": "<PAYMENT_METHOD_ID>" } - } + }, + "required": [ + "paymentMethodId" + ] } } ] } }, - "\/project\/oauth2\/auth0": { + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { "patch": { - "summary": "Update project OAuth2 Auth0", - "operationId": "projectUpdateOAuth2Auth0", + "summary": "Validate the payment for an invoice and update status", + "operationId": "organizationsValidateInvoice", "consumes": [ "application\/json" ], @@ -44707,181 +44077,133 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Auth0 configuration.", + "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", "responses": { "200": { - "description": "OAuth2Auth0", + "description": "Invoice", "schema": { - "$ref": "#\/definitions\/oAuth2Auth0" + "$ref": "#\/definitions\/invoice" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Auth0", - "group": "oauth2", - "weight": 1195, + "method": "validateInvoice", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-auth-0.md", + "demo": "organizations\/validate-invoice.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-invoice-status.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "endpoint": { - "type": "string", - "description": "Domain of Auth0 instance. For example: example.us.auth0.com", - "default": null, - "x-example": "<ENDPOINT>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "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" } ] } }, - "\/project\/oauth2\/authentik": { - "patch": { - "summary": "Update project OAuth2 Authentik", - "operationId": "projectUpdateOAuth2Authentik", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { + "get": { + "summary": "View invoice in PDF", + "operationId": "organizationsGetInvoiceView", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Authentik configuration.", + "description": "View invoice in PDF", "responses": { "200": { - "description": "OAuth2Authentik", + "description": "paymentMethod", "schema": { - "$ref": "#\/definitions\/oAuth2Authentik" + "$ref": "#\/definitions\/paymentMethod" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Authentik", - "group": "oauth2", - "weight": 1194, + "method": "getInvoiceView", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-authentik.md", + "demo": "organizations\/get-invoice-view.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-view.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "endpoint": { - "type": "string", - "description": "Domain of Authentik instance. For example: example.authentik.com", - "default": null, - "x-example": "<ENDPOINT>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "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" } ] } }, - "\/project\/oauth2\/autodesk": { + "\/organizations\/{organizationId}\/payment-method": { "patch": { - "summary": "Update project OAuth2 Autodesk", - "operationId": "projectUpdateOAuth2Autodesk", + "summary": "Set team's payment method", + "operationId": "organizationsSetDefaultPaymentMethod", "consumes": [ "application\/json" ], @@ -44889,83 +44211,74 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Autodesk configuration.", + "description": "Set a organization's default payment method.", "responses": { "200": { - "description": "OAuth2Autodesk", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/oAuth2Autodesk" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Autodesk", - "group": "oauth2", - "weight": 1169, + "method": "setDefaultPaymentMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-autodesk.md", + "demo": "organizations\/set-default-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-default-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { + "paymentMethodId": { "type": "string", - "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true + "description": "Unique ID of payment method", + "x-example": "<PAYMENT_METHOD_ID>" } - } + }, + "required": [ + "paymentMethodId" + ] } } ] - } - }, - "\/project\/oauth2\/bitbucket": { - "patch": { - "summary": "Update project OAuth2 Bitbucket", - "operationId": "projectUpdateOAuth2Bitbucket", + }, + "delete": { + "summary": "Delete team's default payment method", + "operationId": "organizationsDeleteDefaultPaymentMethod", "consumes": [ "application\/json" ], @@ -44973,83 +44286,59 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Bitbucket configuration.", + "description": "Delete the default payment method for an organization.", "responses": { "200": { - "description": "OAuth2Bitbucket", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/oAuth2Bitbucket" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Bitbucket", - "group": "oauth2", - "weight": 1166, + "method": "deleteDefaultPaymentMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-bitbucket.md", + "demo": "organizations\/delete-default-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-default-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", - "default": null, - "x-example": "<KEY>", - "x-nullable": true - }, - "secret": { - "type": "string", - "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", - "default": null, - "x-example": "<SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" } ] } }, - "\/project\/oauth2\/bitly": { + "\/organizations\/{organizationId}\/payment-method\/backup": { "patch": { - "summary": "Update project OAuth2 Bitly", - "operationId": "projectUpdateOAuth2Bitly", + "summary": "Set team's backup payment method", + "operationId": "organizationsSetBackupPaymentMethod", "consumes": [ "application\/json" ], @@ -45057,83 +44346,74 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Bitly configuration.", + "description": "Set an organization's backup payment method.\n", "responses": { "200": { - "description": "OAuth2Bitly", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/oAuth2Bitly" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Bitly", - "group": "oauth2", - "weight": 1167, + "method": "setBackupPaymentMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-bitly.md", + "demo": "organizations\/set-backup-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-backup-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { + "paymentMethodId": { "type": "string", - "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true + "description": "Unique ID of payment method", + "x-example": "<PAYMENT_METHOD_ID>" } - } + }, + "required": [ + "paymentMethodId" + ] } } ] - } - }, - "\/project\/oauth2\/box": { - "patch": { - "summary": "Update project OAuth2 Box", - "operationId": "projectUpdateOAuth2Box", + }, + "delete": { + "summary": "Delete team's backup payment method", + "operationId": "organizationsDeleteBackupPaymentMethod", "consumes": [ "application\/json" ], @@ -45141,251 +44421,181 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Box configuration.", + "description": "Delete a backup payment method for an organization.", "responses": { "200": { - "description": "OAuth2Box", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/oAuth2Box" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Box", - "group": "oauth2", - "weight": 1168, + "method": "deleteBackupPaymentMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-box.md", + "demo": "organizations\/delete-backup-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-backup-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" } ] } }, - "\/project\/oauth2\/dailymotion": { - "patch": { - "summary": "Update project OAuth2 Dailymotion", - "operationId": "projectUpdateOAuth2Dailymotion", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { + "get": { + "summary": "Get payment method", + "operationId": "organizationsGetPaymentMethod", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Dailymotion configuration.", + "description": "Get an organization's payment method using it's payment method ID.", "responses": { "200": { - "description": "OAuth2Dailymotion", + "description": "paymentMethod", "schema": { - "$ref": "#\/definitions\/oAuth2Dailymotion" + "$ref": "#\/definitions\/paymentMethod" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Dailymotion", - "group": "oauth2", - "weight": 1165, + "method": "getPaymentMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-dailymotion.md", + "demo": "organizations\/get-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-payment-method.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "apiKey": { - "type": "string", - "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", - "default": null, - "x-example": "<API_KEY>", - "x-nullable": true - }, - "apiSecret": { - "type": "string", - "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", - "default": null, - "x-example": "<API_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "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" } ] } }, - "\/project\/oauth2\/discord": { - "patch": { - "summary": "Update project OAuth2 Discord", - "operationId": "projectUpdateOAuth2Discord", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/plan": { + "get": { + "summary": "Get organization billing plan details", + "operationId": "organizationsGetPlan", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Discord configuration.", + "description": "Get the details of the current billing plan for an organization.", "responses": { "200": { - "description": "OAuth2Discord", + "description": "billingPlan", "schema": { - "$ref": "#\/definitions\/oAuth2Discord" + "$ref": "#\/definitions\/billingPlan" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Discord", - "group": "oauth2", - "weight": 1162, + "method": "getPlan", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-discord.md", + "demo": "organizations\/get-plan.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" } ] - } - }, - "\/project\/oauth2\/disqus": { + }, "patch": { - "summary": "Update project OAuth2 Disqus", - "operationId": "projectUpdateOAuth2Disqus", + "summary": "Update organization billing plan", + "operationId": "organizationsUpdatePlan", "consumes": [ "application\/json" ], @@ -45393,83 +44603,116 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Disqus configuration.", + "description": "Update the billing plan for an organization.", "responses": { "200": { - "description": "OAuth2Disqus", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/oAuth2Disqus" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Disqus", - "group": "oauth2", - "weight": 1185, + "method": "updatePlan", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-disqus.md", - "rate-limit": 0, + "demo": "organizations\/update-plan.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-plan.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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": { - "publicKey": { + "billingPlan": { "type": "string", - "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", - "default": null, - "x-example": "<PUBLIC_KEY>", + "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 }, - "secretKey": { + "billingAddressId": { "type": "string", - "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", - "default": null, - "x-example": "<SECRET_KEY>", + "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" + } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", "x-nullable": true }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, + "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" + ] } } ] } }, - "\/project\/oauth2\/dropbox": { + "\/organizations\/{organizationId}\/plan\/cancel": { "patch": { - "summary": "Update project OAuth2 Dropbox", - "operationId": "projectUpdateOAuth2Dropbox", + "summary": "Cancel organization plan change", + "operationId": "organizationsCancelDowngrade", "consumes": [ "application\/json" ], @@ -45477,83 +44720,59 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Dropbox configuration.", + "description": "Cancel the downgrade initiated for an organization.", "responses": { "200": { - "description": "OAuth2Dropbox", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/oAuth2Dropbox" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Dropbox", - "group": "oauth2", - "weight": 1164, + "method": "cancelDowngrade", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-dropbox.md", + "demo": "organizations\/cancel-downgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/cancel-downgrade.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "appKey": { - "type": "string", - "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", - "default": null, - "x-example": "<APP_KEY>", - "x-nullable": true - }, - "appSecret": { - "type": "string", - "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", - "default": null, - "x-example": "<APP_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "organizationId", + "description": "Organization Unique ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" } ] } }, - "\/project\/oauth2\/etsy": { - "patch": { - "summary": "Update project OAuth2 Etsy", - "operationId": "projectUpdateOAuth2Etsy", + "\/organizations\/{organizationId}\/plan\/estimations": { + "post": { + "summary": "Create billing plan estimation (upgrade or downgrade)", + "operationId": "organizationsCreatePlanEstimation", "consumes": [ "application\/json" ], @@ -45561,251 +44780,216 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Etsy configuration.", + "description": "Create a billing plan estimation for upgrading or downgrading an organization plan.\n", "responses": { "200": { - "description": "OAuth2Etsy", + "description": "EstimationPlanChange", "schema": { - "$ref": "#\/definitions\/oAuth2Etsy" + "$ref": "#\/definitions\/estimationPlanChange" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Etsy", - "group": "oauth2", - "weight": 1187, + "method": "createPlanEstimation", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-etsy.md", - "rate-limit": 0, + "demo": "organizations\/create-plan-estimation.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-plan-estimation.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "keyString": { + "billingPlan": { "type": "string", - "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", - "default": null, - "x-example": "<KEY_STRING>", - "x-nullable": true + "description": "Target billing plan", + "x-example": "tier-0" }, - "sharedSecret": { - "type": "string", - "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", - "default": null, - "x-example": "<SHARED_SECRET>", - "x-nullable": true + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", "x-nullable": true } - } + }, + "required": [ + "billingPlan" + ] } } ] } }, - "\/project\/oauth2\/facebook": { - "patch": { - "summary": "Update project OAuth2 Facebook", - "operationId": "projectUpdateOAuth2Facebook", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/regions": { + "get": { + "summary": "List Regions", + "operationId": "organizationsListRegions", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Facebook configuration.", + "description": "Get all available regions for an organization.", "responses": { "200": { - "description": "OAuth2Facebook", + "description": "Regions list", "schema": { - "$ref": "#\/definitions\/oAuth2Facebook" + "$ref": "#\/definitions\/consoleRegionList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Facebook", - "group": "oauth2", - "weight": 1188, + "method": "listRegions", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-facebook.md", + "demo": "organizations\/list-regions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-regions.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "appId": { - "type": "string", - "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", - "default": null, - "x-example": "<APP_ID>", - "x-nullable": true - }, - "appSecret": { - "type": "string", - "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", - "default": null, - "x-example": "<APP_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "organizationId", + "description": "Team ID.", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" } ] } }, - "\/project\/oauth2\/figma": { - "patch": { - "summary": "Update project OAuth2 Figma", - "operationId": "projectUpdateOAuth2Figma", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/roles": { + "get": { + "summary": "Get Scopes", + "operationId": "organizationsGetScopes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Figma configuration.", + "description": "Get Scopes", "responses": { "200": { - "description": "OAuth2Figma", + "description": "Roles", "schema": { - "$ref": "#\/definitions\/oAuth2Figma" + "$ref": "#\/definitions\/roles" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Figma", - "group": "oauth2", - "weight": 1163, + "method": "getScopes", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-figma.md", + "demo": "organizations\/get-scopes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-scopes.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "organizationId", + "description": "Organization id", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, + { + "name": "projectId", + "description": "Project id", + "required": false, + "type": "string", + "x-example": "<PROJECT_ID>", + "default": "", + "in": "query" } ] } }, - "\/project\/oauth2\/fusionauth": { + "\/organizations\/{organizationId}\/taxId": { "patch": { - "summary": "Update project OAuth2 FusionAuth", - "operationId": "projectUpdateOAuth2FusionAuth", + "summary": "Set team's tax Id", + "operationId": "organizationsSetBillingTaxId", "consumes": [ "application\/json" ], @@ -45813,174 +44997,153 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 FusionAuth configuration.", + "description": "Set an organization's billing tax ID.", "responses": { "200": { - "description": "OAuth2FusionAuth", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/oAuth2FusionAuth" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2FusionAuth", - "group": "oauth2", - "weight": 1196, + "method": "setBillingTaxId", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-fusion-auth.md", + "demo": "organizations\/set-billing-tax-id.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "billing.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-tax-id.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "endpoint": { + "taxId": { "type": "string", - "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", - "default": null, - "x-example": "<ENDPOINT>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, + "description": "Tax Id associated to billing.", + "x-example": "<TAX_ID>", "x-nullable": true } - } + }, + "required": [ + "taxId" + ] } } ] } }, - "\/project\/oauth2\/github": { - "patch": { - "summary": "Update project OAuth2 GitHub", - "operationId": "projectUpdateOAuth2GitHub", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/usage": { + "get": { + "summary": "Get team's usage data", + "operationId": "organizationsGetUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 GitHub configuration.", + "description": "Get the usage data for an organization.", "responses": { "200": { - "description": "OAuth2GitHub", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/oAuth2Github" + "$ref": "#\/definitions\/usageOrganization" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2GitHub", - "group": "oauth2", - "weight": 1161, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-git-hub.md", + "demo": "organizations\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, + { + "name": "startDate", + "description": "Starting date for the usage", + "required": false, + "type": "string", + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00", + "in": "query" + }, + { + "name": "endDate", + "description": "End date for the usage", + "required": false, + "type": "string", + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00", + "in": "query" } ] } }, - "\/project\/oauth2\/gitlab": { + "\/organizations\/{organizationId}\/validate": { "patch": { - "summary": "Update project OAuth2 Gitlab", - "operationId": "projectUpdateOAuth2Gitlab", + "summary": "Validate payment for the organization after creation or upgrade", + "operationId": "organizationsValidatePayment", "consumes": [ "application\/json" ], @@ -45988,80 +45151,66 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update the project OAuth2 Gitlab configuration.", + "description": "Validate payment for team after creation or upgrade.", "responses": { "200": { - "description": "OAuth2Gitlab", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/oAuth2Gitlab" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Gitlab", - "group": "oauth2", - "weight": 1193, + "method": "validatePayment", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-gitlab.md", + "demo": "organizations\/validate-payment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/validate-payment.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "applicationId": { - "type": "string", - "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", - "default": null, - "x-example": "<APPLICATION_ID>", - "x-nullable": true - }, - "secret": { - "type": "string", - "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", - "default": null, - "x-example": "<SECRET>", - "x-nullable": true - }, - "endpoint": { - "type": "string", - "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", - "default": null, - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } } } } @@ -46069,46 +45218,45 @@ ] } }, - "\/project\/oauth2\/google": { - "patch": { - "summary": "Update project OAuth2 Google", - "operationId": "projectUpdateOAuth2Google", - "consumes": [ - "application\/json" - ], + "\/presences": { + "get": { + "summary": "List presences", + "operationId": "presencesList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 Google configuration.", + "description": "List presence logs. Expired entries are filtered out automatically.\n", "responses": { "200": { - "description": "OAuth2Google", + "description": "Presences List", "schema": { - "$ref": "#\/definitions\/oAuth2Google" + "$ref": "#\/definitions\/presenceList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Google", - "group": "oauth2", - "weight": 1170, + "method": "list", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-google.md", + "demo": "presences\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.read", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/list.md", "auth": { "Project": [] } @@ -46116,198 +45264,155 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "prompt": { - "type": "array", - "description": "Array of Google OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. Must not be specified with other values. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string", - "enum": [ - "none", - "consent", - "select_account" - ], - "x-enum-name": "ProjectOAuth2GooglePrompt", - "x-enum-keys": [] - } - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK.", + "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": "ttl", + "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] } }, - "\/project\/oauth2\/keycloak": { - "patch": { - "summary": "Update project OAuth2 Keycloak", - "operationId": "projectUpdateOAuth2Keycloak", - "consumes": [ - "application\/json" - ], + "\/presences\/usage": { + "get": { + "summary": "Get presence usage", + "operationId": "presencesGetUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 Keycloak configuration.", + "description": "Get presence usage metrics, including the current total of online users and historical online user counts for the selected time range.\n", "responses": { "200": { - "description": "OAuth2Keycloak", + "description": "UsagePresence", "schema": { - "$ref": "#\/definitions\/oAuth2Keycloak" + "$ref": "#\/definitions\/usagePresence" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Keycloak", - "group": "oauth2", - "weight": 1197, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-keycloak.md", + "demo": "presences\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "endpoint": { - "type": "string", - "description": "Domain of Keycloak instance. For example: keycloak.example.com", - "default": null, - "x-example": "<ENDPOINT>", - "x-nullable": true - }, - "realmName": { - "type": "string", - "description": "Keycloak realm name. For example: appwrite-realm", - "default": null, - "x-example": "<REALM_NAME>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "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" } ] } }, - "\/project\/oauth2\/kick": { - "patch": { - "summary": "Update project OAuth2 Kick", - "operationId": "projectUpdateOAuth2Kick", - "consumes": [ - "application\/json" - ], + "\/presences\/{presenceId}": { + "get": { + "summary": "Get presence", + "operationId": "presencesGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 Kick configuration.", + "description": "Get a presence log by its unique ID. Entries whose `expiresAt` is in the past are treated as not found.\n", "responses": { "200": { - "description": "OAuth2Kick", + "description": "Presence", "schema": { - "$ref": "#\/definitions\/oAuth2Kick" + "$ref": "#\/definitions\/presence" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Kick", - "group": "oauth2", - "weight": 1200, + "method": "get", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-kick.md", + "demo": "presences\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.read", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/get.md", "auth": { "Project": [] } @@ -46315,47 +45420,25 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "type": "string", + "x-example": "<PRESENCE_ID>", + "in": "path" } ] - } - }, - "\/project\/oauth2\/linkedin": { - "patch": { - "summary": "Update project OAuth2 Linkedin", - "operationId": "projectUpdateOAuth2Linkedin", + }, + "put": { + "summary": "Upsert presence", + "operationId": "presencesUpsert", "consumes": [ "application\/json" ], @@ -46363,35 +45446,66 @@ "application\/json" ], "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 Linkedin configuration.", + "description": "Create or update a presence log by its user ID.\n", "responses": { "200": { - "description": "OAuth2Linkedin", + "description": "Presence", "schema": { - "$ref": "#\/definitions\/oAuth2Linkedin" + "$ref": "#\/definitions\/presence" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Linkedin", - "group": "oauth2", - "weight": 1184, + "method": "upsert", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-linkedin.md", + "demo": "presences\/upsert.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.write", "platforms": [ - "console", - "server" + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/upsert.md", + "methods": [ + { + "name": "upsert", + "namespace": "presences", + "desc": "Upsert presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "userId", + "status", + "permissions", + "expiresAt", + "metadata" + ], + "required": [ + "presenceId", + "userId", + "status" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/presence" + } + ], + "description": "Create or update a presence log by its user ID.\n", + "demo": "presences\/upsert.md", + "public": true + } + ], "auth": { "Project": [] } @@ -46399,47 +45513,65 @@ "security": [ { "Project": [], - "Key": [] + "Session": [] } ], "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "type": "string", + "x-example": "<PRESENCE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "clientId": { + "userId": { "type": "string", - "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true + "description": "User ID.", + "x-example": "<USER_ID>" }, - "primaryClientSecret": { + "status": { "type": "string", - "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", - "default": null, - "x-example": "<PRIMARY_CLIENT_SECRET>", - "x-nullable": true + "description": "Presence status.", + "x-example": "<STATUS>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true + "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" + } + }, + "expiresAt": { + "type": "string", + "description": "Presence expiry datetime.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + }, + "metadata": { + "type": "object", + "description": "Presence metadata object.", + "default": [], + "x-example": "{}" } - } + }, + "required": [ + "status" + ] } } ] - } - }, - "\/project\/oauth2\/microsoft": { + }, "patch": { - "summary": "Update project OAuth2 Microsoft", - "operationId": "projectUpdateOAuth2Microsoft", + "summary": "Update presence", + "operationId": "presencesUpdate", "consumes": [ "application\/json" ], @@ -46447,35 +45579,66 @@ "application\/json" ], "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 Microsoft configuration.", + "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", "responses": { "200": { - "description": "OAuth2Microsoft", + "description": "Presence", "schema": { - "$ref": "#\/definitions\/oAuth2Microsoft" + "$ref": "#\/definitions\/presence" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Microsoft", - "group": "oauth2", - "weight": 1202, + "method": "update", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-microsoft.md", + "demo": "presences\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.write", "platforms": [ - "console", - "server" + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/update.md", + "methods": [ + { + "name": "updatePresence", + "namespace": "presences", + "desc": "Update presence", + "auth": { + "Project": [] + }, + "parameters": [ + "presenceId", + "userId", + "status", + "expiresAt", + "metadata", + "permissions", + "purge" + ], + "required": [ + "presenceId", + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/presence" + } + ], + "description": "Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n", + "demo": "presences\/update-presence.md", + "public": true + } + ], "auth": { "Project": [] } @@ -46483,90 +45646,100 @@ "security": [ { "Project": [], - "Key": [] + "Session": [] } ], "parameters": [ + { + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "type": "string", + "x-example": "<PRESENCE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "applicationId": { + "userId": { "type": "string", - "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", - "default": null, - "x-example": "<APPLICATION_ID>", - "x-nullable": true + "description": "User ID.", + "x-example": "<USER_ID>" }, - "applicationSecret": { + "status": { "type": "string", - "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", - "default": null, - "x-example": "<APPLICATION_SECRET>", - "x-nullable": true + "description": "Presence status.", + "x-example": "<STATUS>" }, - "tenant": { + "expiresAt": { "type": "string", - "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", - "default": null, - "x-example": "<TENANT>", - "x-nullable": true + "description": "Presence expiry datetime.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" }, - "enabled": { + "metadata": { + "type": "object", + "description": "Presence metadata object.", + "default": {}, + "x-example": "{}" + }, + "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" + } + }, + "purge": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true + "description": "When true, purge cached responses used by list presences endpoint.", + "default": false, + "x-example": false } } } } ] - } - }, - "\/project\/oauth2\/notion": { - "patch": { - "summary": "Update project OAuth2 Notion", - "operationId": "projectUpdateOAuth2Notion", + }, + "delete": { + "summary": "Delete presence", + "operationId": "presencesDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "project" + "presences" ], - "description": "Update the project OAuth2 Notion configuration.", + "description": "Delete a presence log by its unique ID.\n", "responses": { - "200": { - "description": "OAuth2Notion", - "schema": { - "$ref": "#\/definitions\/oAuth2Notion" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Notion", - "group": "oauth2", - "weight": 1181, + "method": "delete", + "group": "presences", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-notion.md", + "demo": "presences\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "presences.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/presences\/delete.md", "auth": { "Project": [] } @@ -46574,77 +45747,52 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "oauthClientId": { - "type": "string", - "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", - "default": null, - "x-example": "<OAUTH_CLIENT_ID>", - "x-nullable": true - }, - "oauthClientSecret": { - "type": "string", - "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", - "default": null, - "x-example": "<OAUTH_CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "presenceId", + "description": "Presence unique ID.", + "required": true, + "type": "string", + "x-example": "<PRESENCE_ID>", + "in": "path" } ] } }, - "\/project\/oauth2\/oidc": { - "patch": { - "summary": "Update project OAuth2 Oidc", - "operationId": "projectUpdateOAuth2Oidc", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], + "\/project": { + "get": { + "summary": "Get project", + "operationId": "projectGet", + "consumes": [], + "produces": [], "tags": [ "project" ], - "description": "Update the project OAuth2 Oidc configuration.", + "description": "Get a project.", "responses": { "200": { - "description": "OAuth2Oidc", + "description": "Project", "schema": { - "$ref": "#\/definitions\/oAuth2Oidc" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Oidc", - "group": "oauth2", - "weight": 1198, + "method": "get", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-oidc.md", + "demo": "project\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "project.read", "platforms": [ "console", "server" @@ -46660,107 +45808,35 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "wellKnownURL": { - "type": "string", - "description": "OpenID Connect well-known configuration URL. When provided, authorization, token, and user info endpoints can be discovered automatically. For example: https:\/\/myoauth.com\/.well-known\/openid-configuration", - "default": null, - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "authorizationURL": { - "type": "string", - "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", - "default": null, - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "tokenURL": { - "type": "string", - "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", - "default": null, - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "userInfoURL": { - "type": "string", - "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", - "default": null, - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } - } ] - } - }, - "\/project\/oauth2\/okta": { - "patch": { - "summary": "Update project OAuth2 Okta", - "operationId": "projectUpdateOAuth2Okta", + }, + "delete": { + "summary": "Delete project", + "operationId": "projectDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "project" ], - "description": "Update the project OAuth2 Okta configuration.", + "description": "Delete a project.", "responses": { - "200": { - "description": "OAuth2Okta", - "schema": { - "$ref": "#\/definitions\/oAuth2Okta" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Okta", - "group": "oauth2", - "weight": 1199, + "method": "delete", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-okta.md", + "demo": "project\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -46776,59 +45852,13 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "domain": { - "type": "string", - "description": "Okta company domain. Required when enabling the provider. For example: trial-6400025.okta.com. Example of wrong value: trial-6400025-admin.okta.com, or https:\/\/trial-6400025.okta.com\/", - "default": null, - "x-example": null, - "x-nullable": true - }, - "authorizationServerId": { - "type": "string", - "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", - "default": null, - "x-example": "<AUTHORIZATION_SERVER_ID>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } - } ] } }, - "\/project\/oauth2\/paypal": { + "\/project\/auth-methods\/{methodId}": { "patch": { - "summary": "Update project OAuth2 Paypal", - "operationId": "projectUpdateOAuth2Paypal", + "summary": "Update project auth method status", + "operationId": "projectUpdateAuthMethod", "consumes": [ "application\/json" ], @@ -46838,27 +45868,26 @@ "tags": [ "project" ], - "description": "Update the project OAuth2 Paypal configuration.", + "description": "Update properties of a specific auth method. Use this endpoint to enable or disable a method in your project. ", "responses": { "200": { - "description": "OAuth2Paypal", + "description": "Project", "schema": { - "$ref": "#\/definitions\/oAuth2Paypal" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Paypal", - "group": "oauth2", - "weight": 1191, + "method": "updateAuthMethod", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-paypal.md", + "demo": "project\/update-auth-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -46876,73 +45905,75 @@ } ], "parameters": [ + { + "name": "methodId", + "description": "Auth Method ID. 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": "ProjectAuthMethodId", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "secretKey": { - "type": "string", - "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "default": null, - "x-example": "<SECRET_KEY>", - "x-nullable": true - }, "enabled": { "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true + "description": "Auth method status.", + "x-example": false } - } + }, + "required": [ + "enabled" + ] } } ] } }, - "\/project\/oauth2\/paypalSandbox": { - "patch": { - "summary": "Update project OAuth2 PaypalSandbox", - "operationId": "projectUpdateOAuth2PaypalSandbox", - "consumes": [ - "application\/json" - ], + "\/project\/keys": { + "get": { + "summary": "List project keys", + "operationId": "projectListKeys", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "project" ], - "description": "Update the project OAuth2 PaypalSandbox configuration.", + "description": "Get a list of all API keys from the current project.", "responses": { "200": { - "description": "OAuth2Paypal", + "description": "API Keys List", "schema": { - "$ref": "#\/definitions\/oAuth2Paypal" + "$ref": "#\/definitions\/keyList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2PaypalSandbox", - "group": "oauth2", - "weight": 1192, + "method": "listKeys", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-paypal-sandbox.md", + "demo": "project\/list-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "keys.read", "platforms": [ "console", "server" @@ -46961,42 +45992,31 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "secretKey": { - "type": "string", - "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "default": null, - "x-example": "<SECRET_KEY>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "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: 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" } ] - } - }, - "\/project\/oauth2\/podio": { - "patch": { - "summary": "Update project OAuth2 Podio", - "operationId": "projectUpdateOAuth2Podio", + }, + "post": { + "summary": "Create project key", + "operationId": "projectCreateKey", "consumes": [ "application\/json" ], @@ -47006,27 +46026,26 @@ "tags": [ "project" ], - "description": "Update the project OAuth2 Podio configuration.", + "description": "Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create an ephemeral API key if you need a short-lived key instead.", "responses": { - "200": { - "description": "OAuth2Podio", + "201": { + "description": "Key", "schema": { - "$ref": "#\/definitions\/oAuth2Podio" + "$ref": "#\/definitions\/key" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Podio", - "group": "oauth2", - "weight": 1180, + "method": "createKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-podio.md", + "demo": "project\/create-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "keys.write", "platforms": [ "console", "server" @@ -47050,121 +46069,143 @@ "schema": { "type": "object", "properties": { - "clientId": { + "keyId": { "type": "string", - "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true + "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>" }, - "clientSecret": { + "name": { "type": "string", - "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } - } - ] - } - }, - "\/project\/oauth2\/salesforce": { - "patch": { - "summary": "Update project OAuth2 Salesforce", - "operationId": "projectUpdateOAuth2Salesforce", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Salesforce configuration.", - "responses": { - "200": { - "description": "OAuth2Salesforce", - "schema": { - "$ref": "#\/definitions\/oAuth2Salesforce" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateOAuth2Salesforce", - "group": "oauth2", - "weight": 1182, - "cookies": false, - "type": "", - "demo": "project\/update-o-auth-2-salesforce.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "customerKey": { - "type": "string", - "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", - "default": null, - "x-example": "<CUSTOMER_KEY>", - "x-nullable": true + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "templates.read", + "templates.write", + "oauth2.read", + "oauth2.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes" + } }, - "customerSecret": { + "expire": { "type": "string", - "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", - "default": null, - "x-example": "<CUSTOMER_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } - } + }, + "required": [ + "keyId", + "name", + "scopes" + ] } } ] } }, - "\/project\/oauth2\/slack": { - "patch": { - "summary": "Update project OAuth2 Slack", - "operationId": "projectUpdateOAuth2Slack", + "\/project\/keys\/ephemeral": { + "post": { + "summary": "Create ephemeral project key", + "operationId": "projectCreateEphemeralKey", "consumes": [ "application\/json" ], @@ -47174,27 +46215,26 @@ "tags": [ "project" ], - "description": "Update the project OAuth2 Slack configuration.", + "description": "Create a new ephemeral API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.\n\nYou can also create a standard API key if you need a longer-lived key instead.", "responses": { - "200": { - "description": "OAuth2Slack", + "201": { + "description": "Ephemeral Key", "schema": { - "$ref": "#\/definitions\/oAuth2Slack" + "$ref": "#\/definitions\/ephemeralKey" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Slack", - "group": "oauth2", - "weight": 1179, + "method": "createEphemeralKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-slack.md", + "demo": "project\/create-ephemeral-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "keys.write", "platforms": [ "console", "server" @@ -47218,67 +46258,158 @@ "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "templates.read", + "templates.write", + "oauth2.read", + "oauth2.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes" + } }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true + "duration": { + "type": "integer", + "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", + "x-example": "600", + "format": "int32" } - } + }, + "required": [ + "scopes", + "duration" + ] } } ] } }, - "\/project\/oauth2\/spotify": { - "patch": { - "summary": "Update project OAuth2 Spotify", - "operationId": "projectUpdateOAuth2Spotify", - "consumes": [ - "application\/json" - ], + "\/project\/keys\/{keyId}": { + "get": { + "summary": "Get project key", + "operationId": "projectGetKey", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "project" ], - "description": "Update the project OAuth2 Spotify configuration.", + "description": "Get a key by its unique ID. ", "responses": { "200": { - "description": "OAuth2Spotify", + "description": "Key", "schema": { - "$ref": "#\/definitions\/oAuth2Spotify" + "$ref": "#\/definitions\/key" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Spotify", - "group": "oauth2", - "weight": 1178, + "method": "getKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-spotify.md", + "demo": "project\/get-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "keys.read", "platforms": [ "console", "server" @@ -47297,42 +46428,18 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "keyId", + "description": "Key ID.", + "required": true, + "type": "string", + "x-example": "<KEY_ID>", + "in": "path" } ] - } - }, - "\/project\/oauth2\/stripe": { - "patch": { - "summary": "Update project OAuth2 Stripe", - "operationId": "projectUpdateOAuth2Stripe", + }, + "put": { + "summary": "Update project key", + "operationId": "projectUpdateKey", "consumes": [ "application\/json" ], @@ -47342,27 +46449,26 @@ "tags": [ "project" ], - "description": "Update the project OAuth2 Stripe configuration.", + "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": "OAuth2Stripe", + "description": "Key", "schema": { - "$ref": "#\/definitions\/oAuth2Stripe" + "$ref": "#\/definitions\/key" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Stripe", - "group": "oauth2", - "weight": 1177, + "method": "updateKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-stripe.md", + "demo": "project\/update-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "keys.write", "platforms": [ "console", "server" @@ -47381,156 +46487,172 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "apiSecretKey": { - "type": "string", - "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", - "default": null, - "x-example": "<API_SECRET_KEY>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } - } - ] - } - }, - "\/project\/oauth2\/tradeshift": { - "patch": { - "summary": "Update project OAuth2 Tradeshift", - "operationId": "projectUpdateOAuth2Tradeshift", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "project" - ], - "description": "Update the project OAuth2 Tradeshift configuration.", - "responses": { - "200": { - "description": "OAuth2Tradeshift", - "schema": { - "$ref": "#\/definitions\/oAuth2Tradeshift" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateOAuth2Tradeshift", - "group": "oauth2", - "weight": 1189, - "cookies": false, - "type": "", - "demo": "project\/update-o-auth-2-tradeshift.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + "name": "keyId", + "description": "Key ID.", + "required": true, + "type": "string", + "x-example": "<KEY_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "oauth2ClientId": { - "type": "string", - "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "default": null, - "x-example": "<OAUTH2_CLIENT_ID>", - "x-nullable": true - }, - "oauth2ClientSecret": { + "name": { "type": "string", - "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "default": null, - "x-example": "<OAUTH2_CLIENT_SECRET>", - "x-nullable": true + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "project.read", + "project.write", + "keys.read", + "keys.write", + "platforms.read", + "platforms.write", + "mocks.read", + "mocks.write", + "policies.read", + "policies.write", + "project.policies.read", + "project.policies.write", + "templates.read", + "templates.write", + "oauth2.read", + "oauth2.write", + "users.read", + "users.write", + "sessions.read", + "sessions.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "tables.read", + "tables.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "rows.read", + "rows.write", + "collections.read", + "collections.write", + "attributes.read", + "attributes.write", + "documents.read", + "documents.write", + "buckets.read", + "buckets.write", + "files.read", + "files.write", + "tokens.read", + "tokens.write", + "functions.read", + "functions.write", + "executions.read", + "executions.write", + "execution.read", + "execution.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "providers.read", + "providers.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "messages.read", + "messages.write", + "rules.read", + "rules.write", + "webhooks.read", + "webhooks.write", + "locale.read", + "avatars.read", + "health.read", + "assistant.read", + "migrations.read", + "migrations.write", + "schedules.read", + "schedules.write", + "vcs.read", + "vcs.write", + "insights.read", + "insights.write", + "reports.read", + "reports.write", + "presences.read", + "presences.write", + "backups.policies.read", + "backups.policies.write", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read", + "usage.read" + ], + "x-enum-name": "ProjectKeyScopes" + } + }, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", "x-nullable": true } - } + }, + "required": [ + "name", + "scopes" + ] } } ] - } - }, - "\/project\/oauth2\/tradeshiftBox": { - "patch": { - "summary": "Update project OAuth2 Tradeshift Sandbox", - "operationId": "projectUpdateOAuth2TradeshiftSandbox", + }, + "delete": { + "summary": "Delete project key", + "operationId": "projectDeleteKey", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "project" ], - "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", + "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", "responses": { - "200": { - "description": "OAuth2Tradeshift", - "schema": { - "$ref": "#\/definitions\/oAuth2Tradeshift" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2TradeshiftSandbox", - "group": "oauth2", - "weight": 1190, + "method": "deleteKey", + "group": "keys", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", + "demo": "project\/delete-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "keys.write", "platforms": [ "console", "server" @@ -47549,42 +46671,20 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "oauth2ClientId": { - "type": "string", - "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "default": null, - "x-example": "<OAUTH2_CLIENT_ID>", - "x-nullable": true - }, - "oauth2ClientSecret": { - "type": "string", - "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "default": null, - "x-example": "<OAUTH2_CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "keyId", + "description": "Key ID.", + "required": true, + "type": "string", + "x-example": "<KEY_ID>", + "in": "path" } ] } }, - "\/project\/oauth2\/twitch": { - "patch": { - "summary": "Update project OAuth2 Twitch", - "operationId": "projectUpdateOAuth2Twitch", + "\/project\/labels": { + "put": { + "summary": "Update project labels", + "operationId": "projectUpdateLabels", "consumes": [ "application\/json" ], @@ -47594,27 +46694,26 @@ "tags": [ "project" ], - "description": "Update the project OAuth2 Twitch configuration.", + "description": "Update the project labels. Labels can be used to easily filter projects in an organization.", "responses": { "200": { - "description": "OAuth2Twitch", + "description": "Project", "schema": { - "$ref": "#\/definitions\/oAuth2Twitch" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Twitch", - "group": "oauth2", - "weight": 1176, + "method": "updateLabels", + "group": null, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-twitch.md", + "demo": "project\/update-labels.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -47638,67 +46737,54 @@ "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true + "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" + ] } } ] } }, - "\/project\/oauth2\/wordpress": { - "patch": { - "summary": "Update project OAuth2 WordPress", - "operationId": "projectUpdateOAuth2WordPress", - "consumes": [ - "application\/json" - ], + "\/project\/mock-phones": { + "get": { + "summary": "List project mock phones", + "operationId": "projectListMockPhones", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "project" ], - "description": "Update the project OAuth2 WordPress configuration.", + "description": "Get a list of all mock phones in the project. This endpoint returns an array of all mock phones and their OTPs.", "responses": { "200": { - "description": "OAuth2WordPress", + "description": "Mock Numbers List", "schema": { - "$ref": "#\/definitions\/oAuth2WordPress" + "$ref": "#\/definitions\/mockNumberList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2WordPress", - "group": "oauth2", - "weight": 1175, + "method": "listMockPhones", + "group": "mocks", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-word-press.md", + "demo": "project\/list-mock-phones.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "mocks.read", "platforms": [ "console", "server" @@ -47717,42 +46803,31 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "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). 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" } ] - } - }, - "\/project\/oauth2\/x": { - "patch": { - "summary": "Update project OAuth2 X", - "operationId": "projectUpdateOAuth2X", + }, + "post": { + "summary": "Create project mock phone", + "operationId": "projectCreateMockPhone", "consumes": [ "application\/json" ], @@ -47762,27 +46837,26 @@ "tags": [ "project" ], - "description": "Update the project OAuth2 X configuration.", + "description": "Create a new mock phone for your project. Use this endpoint to register a mock phone number and its sign-in OTP for your testers.", "responses": { - "200": { - "description": "OAuth2X", + "201": { + "description": "Mock Number", "schema": { - "$ref": "#\/definitions\/oAuth2X" + "$ref": "#\/definitions\/mockNumber" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2X", - "group": "oauth2", - "weight": 1174, + "method": "createMockPhone", + "group": "mocks", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2x.md", + "demo": "project\/create-mock-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "mocks.write", "platforms": [ "console", "server" @@ -47806,67 +46880,58 @@ "schema": { "type": "object", "properties": { - "customerKey": { + "number": { "type": "string", - "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", - "default": null, - "x-example": "<CUSTOMER_KEY>", - "x-nullable": true + "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", + "x-example": "+12065550100", + "format": "phone" }, - "secretKey": { + "otp": { "type": "string", - "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", - "default": null, - "x-example": "<SECRET_KEY>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "x-example": "<OTP>" } - } + }, + "required": [ + "number", + "otp" + ] } } ] } }, - "\/project\/oauth2\/yahoo": { - "patch": { - "summary": "Update project OAuth2 Yahoo", - "operationId": "projectUpdateOAuth2Yahoo", - "consumes": [ - "application\/json" - ], + "\/project\/mock-phones\/{number}": { + "get": { + "summary": "Get project mock phone", + "operationId": "projectGetMockPhone", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "project" ], - "description": "Update the project OAuth2 Yahoo configuration.", + "description": "Get a mock phone by its unique number. This endpoint returns the mock phone's OTP.", "responses": { "200": { - "description": "OAuth2Yahoo", + "description": "Mock Number", "schema": { - "$ref": "#\/definitions\/oAuth2Yahoo" + "$ref": "#\/definitions\/mockNumber" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Yahoo", - "group": "oauth2", - "weight": 1183, + "method": "getMockPhone", + "group": "mocks", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-yahoo.md", + "demo": "project\/get-mock-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "mocks.read", "platforms": [ "console", "server" @@ -47885,42 +46950,19 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "type": "string", + "format": "phone", + "x-example": "+12065550100", + "in": "path" } ] - } - }, - "\/project\/oauth2\/yandex": { - "patch": { - "summary": "Update project OAuth2 Yandex", - "operationId": "projectUpdateOAuth2Yandex", + }, + "put": { + "summary": "Update project mock phone", + "operationId": "projectUpdateMockPhone", "consumes": [ "application\/json" ], @@ -47930,27 +46972,26 @@ "tags": [ "project" ], - "description": "Update the project OAuth2 Yandex configuration.", + "description": "Update a mock phone by its unique number. Use this endpoint to update the mock phone's OTP.", "responses": { "200": { - "description": "OAuth2Yandex", + "description": "Mock Number", "schema": { - "$ref": "#\/definitions\/oAuth2Yandex" + "$ref": "#\/definitions\/mockNumber" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Yandex", - "group": "oauth2", - "weight": 1173, + "method": "updateMockPhone", + "group": "mocks", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-yandex.md", + "demo": "project\/update-mock-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "mocks.write", "platforms": [ "console", "server" @@ -47968,73 +47009,61 @@ } ], "parameters": [ + { + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "type": "string", + "format": "phone", + "x-example": "+12065550100", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { + "otp": { "type": "string", - "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true + "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", + "x-example": "<OTP>" } - } + }, + "required": [ + "otp" + ] } } ] - } - }, - "\/project\/oauth2\/zoho": { - "patch": { - "summary": "Update project OAuth2 Zoho", - "operationId": "projectUpdateOAuth2Zoho", + }, + "delete": { + "summary": "Delete project mock phone", + "operationId": "projectDeleteMockPhone", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "project" ], - "description": "Update the project OAuth2 Zoho configuration.", + "description": "Delete a mock phone by its unique number. This endpoint removes the mock phone and its OTP configuration from the project.", "responses": { - "200": { - "description": "OAuth2Zoho", - "schema": { - "$ref": "#\/definitions\/oAuth2Zoho" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Zoho", - "group": "oauth2", - "weight": 1172, + "method": "deleteMockPhone", + "group": "mocks", "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-zoho.md", + "demo": "project\/delete-mock-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.write", + "scope": "mocks.write", "platforms": [ "console", "server" @@ -48053,42 +47082,93 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "clientId": { - "type": "string", - "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", - "default": null, - "x-example": "<CLIENT_ID>", - "x-nullable": true - }, - "clientSecret": { - "type": "string", - "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", - "default": null, - "x-example": "<CLIENT_SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, - "x-example": false, - "x-nullable": true - } - } + "name": "number", + "description": "Phone number associated with the mock phone. Must be a valid E.164 formatted phone number.", + "required": true, + "type": "string", + "format": "phone", + "x-example": "+12065550100", + "in": "path" + } + ] + } + }, + "\/project\/oauth2": { + "get": { + "summary": "List project OAuth2 providers", + "operationId": "projectListOAuth2Providers", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "project" + ], + "description": "Get a list of all OAuth2 providers supported by the server, along with the project's configuration for each. Credential fields are write-only and always returned empty.", + "responses": { + "200": { + "description": "OAuth2 Providers List", + "schema": { + "$ref": "#\/definitions\/oAuth2ProviderList" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "listOAuth2Providers", + "group": "oauth2", + "cookies": false, + "type": "", + "demo": "project\/list-o-auth-2-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.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). 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" + } ] } }, - "\/project\/oauth2\/zoom": { + "\/project\/oauth2\/amazon": { "patch": { - "summary": "Update project OAuth2 Zoom", - "operationId": "projectUpdateOAuth2Zoom", + "summary": "Update project OAuth2 Amazon", + "operationId": "projectUpdateOAuth2Amazon", "consumes": [ "application\/json" ], @@ -48098,23 +47178,22 @@ "tags": [ "project" ], - "description": "Update the project OAuth2 Zoom configuration.", + "description": "Update the project OAuth2 Amazon configuration.", "responses": { "200": { - "description": "OAuth2Zoom", + "description": "OAuth2Amazon", "schema": { - "$ref": "#\/definitions\/oAuth2Zoom" + "$ref": "#\/definitions\/oAuth2Amazon" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2Zoom", + "method": "updateOAuth2Amazon", "group": "oauth2", - "weight": 1171, "cookies": false, "type": "", - "demo": "project\/update-o-auth-2-zoom.md", + "demo": "project\/update-o-auth-2-amazon.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -48144,22 +47223,19 @@ "properties": { "clientId": { "type": "string", - "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", - "default": null, + "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", - "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", - "default": null, + "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -48169,206 +47245,39 @@ ] } }, - "\/project\/oauth2\/{providerId}": { - "get": { - "summary": "Get project OAuth2 provider", - "operationId": "projectGetOAuth2Provider", - "consumes": [], + "\/project\/oauth2\/apple": { + "patch": { + "summary": "Update project OAuth2 Apple", + "operationId": "projectUpdateOAuth2Apple", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "project" ], - "description": "Get a single OAuth2 provider configuration. Credential fields (client secret, p8 file, key\/team IDs) are write-only and always returned empty.", + "description": "Update the project OAuth2 Apple configuration.", "responses": { "200": { - "description": "OAuth2GitHub, or OAuth2Discord, or OAuth2Figma, or OAuth2Dropbox, or OAuth2Dailymotion, or OAuth2Bitbucket, or OAuth2Bitly, or OAuth2Box, or OAuth2Autodesk, or OAuth2Google, or OAuth2Zoom, or OAuth2Zoho, or OAuth2Yandex, or OAuth2X, or OAuth2WordPress, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2Linkedin, or OAuth2Disqus, or OAuth2Amazon, or OAuth2Etsy, or OAuth2Facebook, or OAuth2Tradeshift, or OAuth2Paypal, or OAuth2Gitlab, or OAuth2Authentik, or OAuth2Auth0, or OAuth2FusionAuth, or OAuth2Keycloak, or OAuth2Oidc, or OAuth2Apple, or OAuth2Okta, or OAuth2Kick, or OAuth2Microsoft", + "description": "OAuth2Apple", "schema": { - "x-oneOf": [ - { - "$ref": "#\/definitions\/oAuth2Github" - }, - { - "$ref": "#\/definitions\/oAuth2Discord" - }, - { - "$ref": "#\/definitions\/oAuth2Figma" - }, - { - "$ref": "#\/definitions\/oAuth2Dropbox" - }, - { - "$ref": "#\/definitions\/oAuth2Dailymotion" - }, - { - "$ref": "#\/definitions\/oAuth2Bitbucket" - }, - { - "$ref": "#\/definitions\/oAuth2Bitly" - }, - { - "$ref": "#\/definitions\/oAuth2Box" - }, - { - "$ref": "#\/definitions\/oAuth2Autodesk" - }, - { - "$ref": "#\/definitions\/oAuth2Google" - }, - { - "$ref": "#\/definitions\/oAuth2Zoom" - }, - { - "$ref": "#\/definitions\/oAuth2Zoho" - }, - { - "$ref": "#\/definitions\/oAuth2Yandex" - }, - { - "$ref": "#\/definitions\/oAuth2X" - }, - { - "$ref": "#\/definitions\/oAuth2WordPress" - }, - { - "$ref": "#\/definitions\/oAuth2Twitch" - }, - { - "$ref": "#\/definitions\/oAuth2Stripe" - }, - { - "$ref": "#\/definitions\/oAuth2Spotify" - }, - { - "$ref": "#\/definitions\/oAuth2Slack" - }, - { - "$ref": "#\/definitions\/oAuth2Podio" - }, - { - "$ref": "#\/definitions\/oAuth2Notion" - }, - { - "$ref": "#\/definitions\/oAuth2Salesforce" - }, - { - "$ref": "#\/definitions\/oAuth2Yahoo" - }, - { - "$ref": "#\/definitions\/oAuth2Linkedin" - }, - { - "$ref": "#\/definitions\/oAuth2Disqus" - }, - { - "$ref": "#\/definitions\/oAuth2Amazon" - }, - { - "$ref": "#\/definitions\/oAuth2Etsy" - }, - { - "$ref": "#\/definitions\/oAuth2Facebook" - }, - { - "$ref": "#\/definitions\/oAuth2Tradeshift" - }, - { - "$ref": "#\/definitions\/oAuth2Paypal" - }, - { - "$ref": "#\/definitions\/oAuth2Gitlab" - }, - { - "$ref": "#\/definitions\/oAuth2Authentik" - }, - { - "$ref": "#\/definitions\/oAuth2Auth0" - }, - { - "$ref": "#\/definitions\/oAuth2FusionAuth" - }, - { - "$ref": "#\/definitions\/oAuth2Keycloak" - }, - { - "$ref": "#\/definitions\/oAuth2Oidc" - }, - { - "$ref": "#\/definitions\/oAuth2Apple" - }, - { - "$ref": "#\/definitions\/oAuth2Okta" - }, - { - "$ref": "#\/definitions\/oAuth2Kick" - }, - { - "$ref": "#\/definitions\/oAuth2Microsoft" - } - ], - "x-discriminator": { - "propertyName": "$id", - "mapping": { - "github": "#\/definitions\/oAuth2Github", - "discord": "#\/definitions\/oAuth2Discord", - "figma": "#\/definitions\/oAuth2Figma", - "dropbox": "#\/definitions\/oAuth2Dropbox", - "dailymotion": "#\/definitions\/oAuth2Dailymotion", - "bitbucket": "#\/definitions\/oAuth2Bitbucket", - "bitly": "#\/definitions\/oAuth2Bitly", - "box": "#\/definitions\/oAuth2Box", - "autodesk": "#\/definitions\/oAuth2Autodesk", - "google": "#\/definitions\/oAuth2Google", - "zoom": "#\/definitions\/oAuth2Zoom", - "zoho": "#\/definitions\/oAuth2Zoho", - "yandex": "#\/definitions\/oAuth2Yandex", - "x": "#\/definitions\/oAuth2X", - "wordpress": "#\/definitions\/oAuth2WordPress", - "twitch": "#\/definitions\/oAuth2Twitch", - "stripe": "#\/definitions\/oAuth2Stripe", - "spotify": "#\/definitions\/oAuth2Spotify", - "slack": "#\/definitions\/oAuth2Slack", - "podio": "#\/definitions\/oAuth2Podio", - "notion": "#\/definitions\/oAuth2Notion", - "salesforce": "#\/definitions\/oAuth2Salesforce", - "yahoo": "#\/definitions\/oAuth2Yahoo", - "linkedin": "#\/definitions\/oAuth2Linkedin", - "disqus": "#\/definitions\/oAuth2Disqus", - "amazon": "#\/definitions\/oAuth2Amazon", - "etsy": "#\/definitions\/oAuth2Etsy", - "facebook": "#\/definitions\/oAuth2Facebook", - "tradeshift": "#\/definitions\/oAuth2Tradeshift", - "tradeshiftBox": "#\/definitions\/oAuth2Tradeshift", - "paypal": "#\/definitions\/oAuth2Paypal", - "paypalSandbox": "#\/definitions\/oAuth2Paypal", - "gitlab": "#\/definitions\/oAuth2Gitlab", - "authentik": "#\/definitions\/oAuth2Authentik", - "auth0": "#\/definitions\/oAuth2Auth0", - "fusionauth": "#\/definitions\/oAuth2FusionAuth", - "keycloak": "#\/definitions\/oAuth2Keycloak", - "oidc": "#\/definitions\/oAuth2Oidc", - "apple": "#\/definitions\/oAuth2Apple", - "okta": "#\/definitions\/oAuth2Okta", - "kick": "#\/definitions\/oAuth2Kick", - "microsoft": "#\/definitions\/oAuth2Microsoft" - } - } + "$ref": "#\/definitions\/oAuth2Apple" } } }, "deprecated": false, "x-appwrite": { - "method": "getOAuth2Provider", + "method": "updateOAuth2Apple", "group": "oauth2", - "weight": 1160, "cookies": false, "type": "", - "demo": "project\/get-o-auth-2-provider.md", + "demo": "project\/update-o-auth-2-apple.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "oauth2.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48387,97 +47296,80 @@ ], "parameters": [ { - "name": "providerId", - "description": "OAuth2 provider key. For example: github, google, apple.", - "required": true, - "type": "string", - "x-example": "amazon", - "enum": [ - "amazon", - "apple", - "auth0", - "authentik", - "autodesk", - "bitbucket", - "bitly", - "box", - "dailymotion", - "discord", - "disqus", - "dropbox", - "etsy", - "facebook", - "figma", - "fusionauth", - "github", - "gitlab", - "google", - "keycloak", - "kick", - "linkedin", - "microsoft", - "notion", - "oidc", - "okta", - "paypal", - "paypalSandbox", - "podio", - "salesforce", - "slack", - "spotify", - "stripe", - "tradeshift", - "tradeshiftBox", - "twitch", - "wordpress", - "x", - "yahoo", - "yammer", - "yandex", - "zoho", - "zoom", - "githubImagine", - "googleImagine" - ], - "x-enum-name": "ProjectOAuthProviderId", - "x-enum-keys": [], - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "serviceId": { + "type": "string", + "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", + "x-example": "<SERVICE_ID>", + "x-nullable": true + }, + "keyId": { + "type": "string", + "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", + "x-example": "<KEY_ID>", + "x-nullable": true + }, + "teamId": { + "type": "string", + "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", + "x-example": "<TEAM_ID>", + "x-nullable": true + }, + "p8File": { + "type": "string", + "description": "Contents of the Apple OAuth2 app .p8 private key file. The secret key wrapped by the PEM markers is 200 characters long. For example: -----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", + "x-example": "<P8_FILE>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } } ] } }, - "\/project\/platforms": { - "get": { - "summary": "List project platforms", - "operationId": "projectListPlatforms", - "consumes": [], + "\/project\/oauth2\/auth0": { + "patch": { + "summary": "Update project OAuth2 Auth0", + "operationId": "projectUpdateOAuth2Auth0", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "project" ], - "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", + "description": "Update the project OAuth2 Auth0 configuration.", "responses": { "200": { - "description": "Platforms List", + "description": "OAuth2Auth0", "schema": { - "$ref": "#\/definitions\/platformList" + "$ref": "#\/definitions\/oAuth2Auth0" } } }, "deprecated": false, "x-appwrite": { - "method": "listPlatforms", - "group": "platforms", - "weight": 1129, + "method": "updateOAuth2Auth0", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/list-platforms.md", + "demo": "project\/update-o-auth-2-auth-0.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48496,33 +47388,45 @@ ], "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: type, name, hostname, bundleIdentifier, applicationId, packageIdentifierName, packageName", - "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": { + "clientId": { + "type": "string", + "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of Auth0 instance. For example: example.us.auth0.com", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } } ] } }, - "\/project\/platforms\/android": { - "post": { - "summary": "Create project Android platform", - "operationId": "projectCreateAndroidPlatform", + "\/project\/oauth2\/authentik": { + "patch": { + "summary": "Update project OAuth2 Authentik", + "operationId": "projectUpdateOAuth2Authentik", "consumes": [ "application\/json" ], @@ -48532,27 +47436,26 @@ "tags": [ "project" ], - "description": "Create a new Android platform for your project. Use this endpoint to register a new Android platform where your users will run your application which will interact with the Appwrite API.", + "description": "Update the project OAuth2 Authentik configuration.", "responses": { - "201": { - "description": "Platform Android", + "200": { + "description": "OAuth2Authentik", "schema": { - "$ref": "#\/definitions\/platformAndroid" + "$ref": "#\/definitions\/oAuth2Authentik" } } }, "deprecated": false, "x-appwrite": { - "method": "createAndroidPlatform", - "group": "platforms", - "weight": 1133, + "method": "updateOAuth2Authentik", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-android-platform.md", + "demo": "project\/update-o-auth-2-authentik.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48576,39 +47479,40 @@ "schema": { "type": "object", "properties": { - "platformId": { + "clientId": { "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "name": { + "clientSecret": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true }, - "applicationId": { + "endpoint": { "type": "string", - "description": "Android application ID. Max length: 256 chars.", - "default": null, - "x-example": "<APPLICATION_ID>" - } - }, - "required": [ - "platformId", - "name", - "applicationId" - ] + "description": "Domain of Authentik instance. For example: example.authentik.com", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } } } ] } }, - "\/project\/platforms\/android\/{platformId}": { - "put": { - "summary": "Update project Android platform", - "operationId": "projectUpdateAndroidPlatform", + "\/project\/oauth2\/autodesk": { + "patch": { + "summary": "Update project OAuth2 Autodesk", + "operationId": "projectUpdateOAuth2Autodesk", "consumes": [ "application\/json" ], @@ -48618,27 +47522,26 @@ "tags": [ "project" ], - "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", + "description": "Update the project OAuth2 Autodesk configuration.", "responses": { "200": { - "description": "Platform Android", + "description": "OAuth2Autodesk", "schema": { - "$ref": "#\/definitions\/platformAndroid" + "$ref": "#\/definitions\/oAuth2Autodesk" } } }, "deprecated": false, "x-appwrite": { - "method": "updateAndroidPlatform", - "group": "platforms", - "weight": 1138, + "method": "updateOAuth2Autodesk", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-android-platform.md", + "demo": "project\/update-o-auth-2-autodesk.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48656,46 +47559,40 @@ } ], "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "type": "string", - "x-example": "<PLATFORM_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "clientId": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "applicationId": { + "clientSecret": { "type": "string", - "description": "Android application ID. Max length: 256 chars.", - "default": null, - "x-example": "<APPLICATION_ID>" + "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "name", - "applicationId" - ] + } } } ] } }, - "\/project\/platforms\/apple": { - "post": { - "summary": "Create project Apple platform", - "operationId": "projectCreateApplePlatform", + "\/project\/oauth2\/bitbucket": { + "patch": { + "summary": "Update project OAuth2 Bitbucket", + "operationId": "projectUpdateOAuth2Bitbucket", "consumes": [ "application\/json" ], @@ -48705,27 +47602,26 @@ "tags": [ "project" ], - "description": "Create a new Apple platform for your project. Use this endpoint to register a new Apple platform where your users will run your application which will interact with the Appwrite API.", + "description": "Update the project OAuth2 Bitbucket configuration.", "responses": { - "201": { - "description": "Platform Apple", + "200": { + "description": "OAuth2Bitbucket", "schema": { - "$ref": "#\/definitions\/platformApple" + "$ref": "#\/definitions\/oAuth2Bitbucket" } } }, "deprecated": false, "x-appwrite": { - "method": "createApplePlatform", - "group": "platforms", - "weight": 1132, + "method": "updateOAuth2Bitbucket", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-apple-platform.md", + "demo": "project\/update-o-auth-2-bitbucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48749,39 +47645,34 @@ "schema": { "type": "object", "properties": { - "platformId": { + "key": { "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", + "x-example": "<KEY>", + "x-nullable": true }, - "name": { + "secret": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", + "x-example": "<SECRET>", + "x-nullable": true }, - "bundleIdentifier": { - "type": "string", - "description": "Apple bundle identifier. Max length: 256 chars.", - "default": null, - "x-example": "<BUNDLE_IDENTIFIER>" + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "platformId", - "name", - "bundleIdentifier" - ] + } } } ] } }, - "\/project\/platforms\/apple\/{platformId}": { - "put": { - "summary": "Update project Apple platform", - "operationId": "projectUpdateApplePlatform", + "\/project\/oauth2\/bitly": { + "patch": { + "summary": "Update project OAuth2 Bitly", + "operationId": "projectUpdateOAuth2Bitly", "consumes": [ "application\/json" ], @@ -48791,27 +47682,26 @@ "tags": [ "project" ], - "description": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", + "description": "Update the project OAuth2 Bitly configuration.", "responses": { "200": { - "description": "Platform Apple", + "description": "OAuth2Bitly", "schema": { - "$ref": "#\/definitions\/platformApple" + "$ref": "#\/definitions\/oAuth2Bitly" } } }, "deprecated": false, "x-appwrite": { - "method": "updateApplePlatform", - "group": "platforms", - "weight": 1137, + "method": "updateOAuth2Bitly", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-apple-platform.md", + "demo": "project\/update-o-auth-2-bitly.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48829,46 +47719,40 @@ } ], "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "type": "string", - "x-example": "<PLATFORM_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "clientId": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "bundleIdentifier": { + "clientSecret": { "type": "string", - "description": "Apple bundle identifier. Max length: 256 chars.", - "default": null, - "x-example": "<BUNDLE_IDENTIFIER>" + "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "name", - "bundleIdentifier" - ] + } } } ] } }, - "\/project\/platforms\/linux": { - "post": { - "summary": "Create project Linux platform", - "operationId": "projectCreateLinuxPlatform", + "\/project\/oauth2\/box": { + "patch": { + "summary": "Update project OAuth2 Box", + "operationId": "projectUpdateOAuth2Box", "consumes": [ "application\/json" ], @@ -48878,27 +47762,26 @@ "tags": [ "project" ], - "description": "Create a new Linux platform for your project. Use this endpoint to register a new Linux platform where your users will run your application which will interact with the Appwrite API.", + "description": "Update the project OAuth2 Box configuration.", "responses": { - "201": { - "description": "Platform Linux", + "200": { + "description": "OAuth2Box", "schema": { - "$ref": "#\/definitions\/platformLinux" + "$ref": "#\/definitions\/oAuth2Box" } } }, "deprecated": false, "x-appwrite": { - "method": "createLinuxPlatform", - "group": "platforms", - "weight": 1135, + "method": "updateOAuth2Box", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-linux-platform.md", + "demo": "project\/update-o-auth-2-box.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -48922,39 +47805,34 @@ "schema": { "type": "object", "properties": { - "platformId": { + "clientId": { "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "name": { + "clientSecret": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true }, - "packageName": { - "type": "string", - "description": "Linux package name. Max length: 256 chars.", - "default": null, - "x-example": "<PACKAGE_NAME>" + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "platformId", - "name", - "packageName" - ] + } } } ] } }, - "\/project\/platforms\/linux\/{platformId}": { - "put": { - "summary": "Update project Linux platform", - "operationId": "projectUpdateLinuxPlatform", + "\/project\/oauth2\/dailymotion": { + "patch": { + "summary": "Update project OAuth2 Dailymotion", + "operationId": "projectUpdateOAuth2Dailymotion", "consumes": [ "application\/json" ], @@ -48964,27 +47842,26 @@ "tags": [ "project" ], - "description": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", + "description": "Update the project OAuth2 Dailymotion configuration.", "responses": { "200": { - "description": "Platform Linux", + "description": "OAuth2Dailymotion", "schema": { - "$ref": "#\/definitions\/platformLinux" + "$ref": "#\/definitions\/oAuth2Dailymotion" } } }, "deprecated": false, "x-appwrite": { - "method": "updateLinuxPlatform", - "group": "platforms", - "weight": 1140, + "method": "updateOAuth2Dailymotion", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-linux-platform.md", + "demo": "project\/update-o-auth-2-dailymotion.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49002,46 +47879,40 @@ } ], "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "type": "string", - "x-example": "<PLATFORM_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "apiKey": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", + "x-example": "<API_KEY>", + "x-nullable": true }, - "packageName": { + "apiSecret": { "type": "string", - "description": "Linux package name. Max length: 256 chars.", - "default": null, - "x-example": "<PACKAGE_NAME>" + "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", + "x-example": "<API_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "name", - "packageName" - ] + } } } ] } }, - "\/project\/platforms\/web": { - "post": { - "summary": "Create project web platform", - "operationId": "projectCreateWebPlatform", + "\/project\/oauth2\/discord": { + "patch": { + "summary": "Update project OAuth2 Discord", + "operationId": "projectUpdateOAuth2Discord", "consumes": [ "application\/json" ], @@ -49051,27 +47922,26 @@ "tags": [ "project" ], - "description": "Create a new web 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": "Update the project OAuth2 Discord configuration.", "responses": { - "201": { - "description": "Platform Web", + "200": { + "description": "OAuth2Discord", "schema": { - "$ref": "#\/definitions\/platformWeb" + "$ref": "#\/definitions\/oAuth2Discord" } } }, "deprecated": false, "x-appwrite": { - "method": "createWebPlatform", - "group": "platforms", - "weight": 1131, + "method": "updateOAuth2Discord", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-web-platform.md", + "demo": "project\/update-o-auth-2-discord.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49095,39 +47965,34 @@ "schema": { "type": "object", "properties": { - "platformId": { + "clientId": { "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "name": { + "clientSecret": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true }, - "hostname": { - "type": "string", - "description": "Platform web hostname. Max length: 256 chars.", - "default": null, - "x-example": "app.example.com" + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "platformId", - "name", - "hostname" - ] + } } } ] } }, - "\/project\/platforms\/web\/{platformId}": { - "put": { - "summary": "Update project web platform", - "operationId": "projectUpdateWebPlatform", + "\/project\/oauth2\/disqus": { + "patch": { + "summary": "Update project OAuth2 Disqus", + "operationId": "projectUpdateOAuth2Disqus", "consumes": [ "application\/json" ], @@ -49137,27 +48002,26 @@ "tags": [ "project" ], - "description": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", + "description": "Update the project OAuth2 Disqus configuration.", "responses": { "200": { - "description": "Platform Web", + "description": "OAuth2Disqus", "schema": { - "$ref": "#\/definitions\/platformWeb" + "$ref": "#\/definitions\/oAuth2Disqus" } } }, "deprecated": false, "x-appwrite": { - "method": "updateWebPlatform", - "group": "platforms", - "weight": 1136, + "method": "updateOAuth2Disqus", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-web-platform.md", + "demo": "project\/update-o-auth-2-disqus.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49175,46 +48039,40 @@ } ], "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "type": "string", - "x-example": "<PLATFORM_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "publicKey": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", + "x-example": "<PUBLIC_KEY>", + "x-nullable": true }, - "hostname": { + "secretKey": { "type": "string", - "description": "Platform web hostname. Max length: 256 chars.", - "default": null, - "x-example": "app.example.com" + "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "name", - "hostname" - ] + } } } ] } }, - "\/project\/platforms\/windows": { - "post": { - "summary": "Create project Windows platform", - "operationId": "projectCreateWindowsPlatform", + "\/project\/oauth2\/dropbox": { + "patch": { + "summary": "Update project OAuth2 Dropbox", + "operationId": "projectUpdateOAuth2Dropbox", "consumes": [ "application\/json" ], @@ -49224,27 +48082,26 @@ "tags": [ "project" ], - "description": "Create a new Windows platform for your project. Use this endpoint to register a new Windows platform where your users will run your application which will interact with the Appwrite API.", + "description": "Update the project OAuth2 Dropbox configuration.", "responses": { - "201": { - "description": "Platform Windows", + "200": { + "description": "OAuth2Dropbox", "schema": { - "$ref": "#\/definitions\/platformWindows" + "$ref": "#\/definitions\/oAuth2Dropbox" } } }, "deprecated": false, "x-appwrite": { - "method": "createWindowsPlatform", - "group": "platforms", - "weight": 1134, + "method": "updateOAuth2Dropbox", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-windows-platform.md", + "demo": "project\/update-o-auth-2-dropbox.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49268,39 +48125,34 @@ "schema": { "type": "object", "properties": { - "platformId": { + "appKey": { "type": "string", - "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", + "x-example": "<APP_KEY>", + "x-nullable": true }, - "name": { + "appSecret": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", + "x-example": "<APP_SECRET>", + "x-nullable": true }, - "packageIdentifierName": { - "type": "string", - "description": "Windows package identifier name. Max length: 256 chars.", - "default": null, - "x-example": "<PACKAGE_IDENTIFIER_NAME>" + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "platformId", - "name", - "packageIdentifierName" - ] + } } } ] } }, - "\/project\/platforms\/windows\/{platformId}": { - "put": { - "summary": "Update project Windows platform", - "operationId": "projectUpdateWindowsPlatform", + "\/project\/oauth2\/etsy": { + "patch": { + "summary": "Update project OAuth2 Etsy", + "operationId": "projectUpdateOAuth2Etsy", "consumes": [ "application\/json" ], @@ -49310,27 +48162,26 @@ "tags": [ "project" ], - "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", + "description": "Update the project OAuth2 Etsy configuration.", "responses": { "200": { - "description": "Platform Windows", + "description": "OAuth2Etsy", "schema": { - "$ref": "#\/definitions\/platformWindows" + "$ref": "#\/definitions\/oAuth2Etsy" } } }, "deprecated": false, "x-appwrite": { - "method": "updateWindowsPlatform", - "group": "platforms", - "weight": 1139, + "method": "updateOAuth2Etsy", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-windows-platform.md", + "demo": "project\/update-o-auth-2-etsy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49348,100 +48199,69 @@ } ], "parameters": [ - { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "type": "string", - "x-example": "<PLATFORM_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "keyString": { "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", + "x-example": "<KEY_STRING>", + "x-nullable": true }, - "packageIdentifierName": { + "sharedSecret": { "type": "string", - "description": "Windows package identifier name. Max length: 256 chars.", - "default": null, - "x-example": "<PACKAGE_IDENTIFIER_NAME>" + "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", + "x-example": "<SHARED_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "name", - "packageIdentifierName" - ] + } } } ] } }, - "\/project\/platforms\/{platformId}": { - "get": { - "summary": "Get project platform", - "operationId": "projectGetPlatform", - "consumes": [], + "\/project\/oauth2\/facebook": { + "patch": { + "summary": "Update project OAuth2 Facebook", + "operationId": "projectUpdateOAuth2Facebook", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "project" ], - "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations.", + "description": "Update the project OAuth2 Facebook configuration.", "responses": { "200": { - "description": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", + "description": "OAuth2Facebook", "schema": { - "x-oneOf": [ - { - "$ref": "#\/definitions\/platformWeb" - }, - { - "$ref": "#\/definitions\/platformApple" - }, - { - "$ref": "#\/definitions\/platformAndroid" - }, - { - "$ref": "#\/definitions\/platformWindows" - }, - { - "$ref": "#\/definitions\/platformLinux" - } - ], - "x-discriminator": { - "propertyName": "type", - "mapping": { - "web": "#\/definitions\/platformWeb", - "apple": "#\/definitions\/platformApple", - "android": "#\/definitions\/platformAndroid", - "windows": "#\/definitions\/platformWindows", - "linux": "#\/definitions\/platformLinux" - } - } + "$ref": "#\/definitions\/oAuth2Facebook" } } }, "deprecated": false, "x-appwrite": { - "method": "getPlatform", - "group": "platforms", - "weight": 1130, + "method": "updateOAuth2Facebook", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get-platform.md", + "demo": "project\/update-o-auth-2-facebook.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49460,43 +48280,68 @@ ], "parameters": [ { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "type": "string", - "x-example": "<PLATFORM_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "appId": { + "type": "string", + "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", + "x-example": "<APP_ID>", + "x-nullable": true + }, + "appSecret": { + "type": "string", + "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", + "x-example": "<APP_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } } ] - }, - "delete": { - "summary": "Delete project platform", - "operationId": "projectDeletePlatform", + } + }, + "\/project\/oauth2\/figma": { + "patch": { + "summary": "Update project OAuth2 Figma", + "operationId": "projectUpdateOAuth2Figma", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "project" ], - "description": "Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project.", + "description": "Update the project OAuth2 Figma configuration.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "OAuth2Figma", + "schema": { + "$ref": "#\/definitions\/oAuth2Figma" + } } }, "deprecated": false, "x-appwrite": { - "method": "deletePlatform", - "group": "platforms", - "weight": 1141, + "method": "updateOAuth2Figma", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/delete-platform.md", + "demo": "project\/update-o-auth-2-figma.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49515,51 +48360,68 @@ ], "parameters": [ { - "name": "platformId", - "description": "Platform ID.", - "required": true, - "type": "string", - "x-example": "<PLATFORM_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } } ] } }, - "\/project\/policies": { - "get": { - "summary": "List project policies", - "operationId": "projectListPolicies", - "consumes": [], + "\/project\/oauth2\/fusionauth": { + "patch": { + "summary": "Update project OAuth2 FusionAuth", + "operationId": "projectUpdateOAuth2FusionAuth", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "project" ], - "description": "Get a list of all project policies and their current configuration.", + "description": "Update the project OAuth2 FusionAuth configuration.", "responses": { "200": { - "description": "Policies List", + "description": "OAuth2FusionAuth", "schema": { - "$ref": "#\/definitions\/policyList" + "$ref": "#\/definitions\/oAuth2FusionAuth" } } }, "deprecated": false, "x-appwrite": { - "method": "listPolicies", - "group": "policies", - "weight": 1147, + "method": "updateOAuth2FusionAuth", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/list-policies.md", + "demo": "project\/update-o-auth-2-fusion-auth.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "project.policies.read" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49578,33 +48440,45 @@ ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", - "required": false, - "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": { + "clientId": { + "type": "string", + "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", + "x-example": "<ENDPOINT>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } } ] } }, - "\/project\/policies\/deny-aliased-email": { + "\/project\/oauth2\/github": { "patch": { - "summary": "Update deny aliased email policy", - "operationId": "projectUpdateDenyAliasedEmailPolicy", + "summary": "Update project OAuth2 GitHub", + "operationId": "projectUpdateOAuth2GitHub", "consumes": [ "application\/json" ], @@ -49614,30 +48488,26 @@ "tags": [ "project" ], - "description": "Configures if aliased emails such as subaddresses and emails with suffixes are denied during new users sign-ups and email updates.", + "description": "Update the project OAuth2 GitHub configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2GitHub", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Github" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDenyAliasedEmailPolicy", - "group": "policies", - "weight": 1203, + "method": "updateOAuth2GitHub", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-deny-aliased-email-policy.md", + "demo": "project\/update-o-auth-2-git-hub.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49661,25 +48531,34 @@ "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Set whether or not to block aliased emails during signup and email updates.", - "default": null, - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } ] } }, - "\/project\/policies\/deny-disposable-email": { + "\/project\/oauth2\/gitlab": { "patch": { - "summary": "Update deny disposable email policy", - "operationId": "projectUpdateDenyDisposableEmailPolicy", + "summary": "Update project OAuth2 Gitlab", + "operationId": "projectUpdateOAuth2Gitlab", "consumes": [ "application\/json" ], @@ -49689,30 +48568,26 @@ "tags": [ "project" ], - "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", + "description": "Update the project OAuth2 Gitlab configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Gitlab", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Gitlab" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDenyDisposableEmailPolicy", - "group": "policies", - "weight": 1204, + "method": "updateOAuth2Gitlab", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-deny-disposable-email-policy.md", + "demo": "project\/update-o-auth-2-gitlab.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49736,25 +48611,41 @@ "schema": { "type": "object", "properties": { + "applicationId": { + "type": "string", + "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", + "x-example": "<APPLICATION_ID>", + "x-nullable": true + }, + "secret": { + "type": "string", + "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", + "x-example": "<SECRET>", + "x-nullable": true + }, + "endpoint": { + "type": "string", + "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Set whether or not to block disposable email addresses during signup and email updates.", - "default": null, - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } ] } }, - "\/project\/policies\/deny-free-email": { + "\/project\/oauth2\/google": { "patch": { - "summary": "Update deny free email policy", - "operationId": "projectUpdateDenyFreeEmailPolicy", + "summary": "Update project OAuth2 Google", + "operationId": "projectUpdateOAuth2Google", "consumes": [ "application\/json" ], @@ -49764,30 +48655,26 @@ "tags": [ "project" ], - "description": "Configures if emails from free providers such as Gmail or Yahoo are denied during new users sign-ups and email updates.", + "description": "Update the project OAuth2 Google configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Google", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Google" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDenyFreeEmailPolicy", - "group": "policies", - "weight": 1205, + "method": "updateOAuth2Google", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-deny-free-email-policy.md", + "demo": "project\/update-o-auth-2-google.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49811,25 +48698,49 @@ "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "prompt": { + "type": "array", + "description": "Array of Google OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. Must not be specified with other values. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string", + "enum": [ + "none", + "consent", + "select_account" + ], + "x-enum-name": "ProjectOAuth2GooglePrompt" + } + }, "enabled": { "type": "boolean", - "description": "Set whether or not to block free email addresses during signup and email updates.", - "default": null, - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } ] } }, - "\/project\/policies\/membership-privacy": { + "\/project\/oauth2\/keycloak": { "patch": { - "summary": "Update membership privacy policy", - "operationId": "projectUpdateMembershipPrivacyPolicy", + "summary": "Update project OAuth2 Keycloak", + "operationId": "projectUpdateOAuth2Keycloak", "consumes": [ "application\/json" ], @@ -49839,30 +48750,26 @@ "tags": [ "project" ], - "description": "Updating this policy allows you to control if team members can see other members information. When enabled, all team members can see ID, name, email, phone number, and MFA status of other members..", + "description": "Update the project OAuth2 Keycloak configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Keycloak", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Keycloak" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMembershipPrivacyPolicy", - "group": "policies", - "weight": 1149, + "method": "updateOAuth2Keycloak", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-membership-privacy-policy.md", + "demo": "project\/update-o-auth-2-keycloak.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49886,35 +48793,35 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "boolean", - "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", - "default": null, - "x-example": false + "clientId": { + "type": "string", + "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "userEmail": { - "type": "boolean", - "description": "Set to true if you want make user email visible to all team members, or false to hide it.", - "default": null, - "x-example": false + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true }, - "userPhone": { - "type": "boolean", - "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", - "default": null, - "x-example": false + "endpoint": { + "type": "string", + "description": "Domain of Keycloak instance. For example: keycloak.example.com", + "x-example": "<ENDPOINT>", + "x-nullable": true }, - "userName": { - "type": "boolean", - "description": "Set to true if you want make user name visible to all team members, or false to hide it.", - "default": null, - "x-example": false + "realmName": { + "type": "string", + "description": "Keycloak realm name. For example: appwrite-realm", + "x-example": "<REALM_NAME>", + "x-nullable": true }, - "userMFA": { + "enabled": { "type": "boolean", - "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", - "default": null, - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } } } @@ -49922,10 +48829,10 @@ ] } }, - "\/project\/policies\/password-dictionary": { + "\/project\/oauth2\/kick": { "patch": { - "summary": "Update password dictionary policy", - "operationId": "projectUpdatePasswordDictionaryPolicy", + "summary": "Update project OAuth2 Kick", + "operationId": "projectUpdateOAuth2Kick", "consumes": [ "application\/json" ], @@ -49935,30 +48842,26 @@ "tags": [ "project" ], - "description": "Updating this policy allows you to control if new passwords are checked against most common passwords dictionary. When enabled, and user changes their password, password must not be contained in the dictionary.", + "description": "Update the project OAuth2 Kick configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Kick", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Kick" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordDictionaryPolicy", - "group": "policies", - "weight": 1150, + "method": "updateOAuth2Kick", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-password-dictionary-policy.md", + "demo": "project\/update-o-auth-2-kick.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -49982,25 +48885,34 @@ "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Toggle password dictionary policy. Set to true if you want password change to block passwords in the dictionary, or false to allow them. When changing this policy, existing passwords remain valid.", - "default": null, - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } ] } }, - "\/project\/policies\/password-history": { + "\/project\/oauth2\/linkedin": { "patch": { - "summary": "Update password history policy", - "operationId": "projectUpdatePasswordHistoryPolicy", + "summary": "Update project OAuth2 Linkedin", + "operationId": "projectUpdateOAuth2Linkedin", "consumes": [ "application\/json" ], @@ -50010,30 +48922,26 @@ "tags": [ "project" ], - "description": "Updates one of password strength policies. Based on total length configured, previous password hashes are stored, and users cannot choose a new password that is already stored in the passwird history list, when updating an user password, or setting new one through password recovery.\n\nKeep in mind, while password history policy is disabled, the history is not being stored. Enabling the policy will not have any history on existing users, and it will only start to collect and enforce the policy on password changes since the policy is enabled.", + "description": "Update the project OAuth2 Linkedin configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Linkedin", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Linkedin" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordHistoryPolicy", - "group": "policies", - "weight": 1151, + "method": "updateOAuth2Linkedin", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-password-history-policy.md", + "demo": "project\/update-o-auth-2-linkedin.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50057,27 +48965,34 @@ "schema": { "type": "object", "properties": { - "total": { - "type": "integer", - "description": "Set the password history length per user. Value can be between 1 and 5000, or null to disable the limit.", - "default": null, - "x-example": 1, - "format": "int32", + "clientId": { + "type": "string", + "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "primaryClientSecret": { + "type": "string", + "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", + "x-example": "<PRIMARY_CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true } - }, - "required": [ - "total" - ] + } } } ] } }, - "\/project\/policies\/password-personal-data": { + "\/project\/oauth2\/microsoft": { "patch": { - "summary": "Update password personal data policy", - "operationId": "projectUpdatePasswordPersonalDataPolicy", + "summary": "Update project OAuth2 Microsoft", + "operationId": "projectUpdateOAuth2Microsoft", "consumes": [ "application\/json" ], @@ -50087,30 +49002,26 @@ "tags": [ "project" ], - "description": "Updating this policy allows you to control if password strength is checked against personal data. When enabled, and user sets or changes their password, the password must not contain user ID, name, email or phone number.", + "description": "Update the project OAuth2 Microsoft configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Microsoft", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Microsoft" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePasswordPersonalDataPolicy", - "group": "policies", - "weight": 1152, + "method": "updateOAuth2Microsoft", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-password-personal-data-policy.md", + "demo": "project\/update-o-auth-2-microsoft.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50134,25 +49045,40 @@ "schema": { "type": "object", "properties": { + "applicationId": { + "type": "string", + "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", + "x-example": "<APPLICATION_ID>", + "x-nullable": true + }, + "applicationSecret": { + "type": "string", + "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", + "x-example": "<APPLICATION_SECRET>", + "x-nullable": true + }, + "tenant": { + "type": "string", + "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", + "x-example": "<TENANT>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Toggle password personal data policy. Set to true if you want to block passwords including user's personal data, or false to allow it. When changing this policy, existing passwords remain valid.", - "default": null, - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } ] } }, - "\/project\/policies\/session-alert": { + "\/project\/oauth2\/notion": { "patch": { - "summary": "Update session alert policy", - "operationId": "projectUpdateSessionAlertPolicy", + "summary": "Update project OAuth2 Notion", + "operationId": "projectUpdateOAuth2Notion", "consumes": [ "application\/json" ], @@ -50162,30 +49088,26 @@ "tags": [ "project" ], - "description": "Updating this policy allows you to control if email alert is sent upon session creation. When enabled, and user signs into their account, they will be sent an email notification. There is an exception, the first session after a new sign up does not trigger an alert, even if the policy is enabled.", + "description": "Update the project OAuth2 Notion configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Notion", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Notion" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSessionAlertPolicy", - "group": "policies", - "weight": 1153, + "method": "updateOAuth2Notion", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-session-alert-policy.md", + "demo": "project\/update-o-auth-2-notion.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50209,25 +49131,34 @@ "schema": { "type": "object", "properties": { + "oauthClientId": { + "type": "string", + "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", + "x-example": "<OAUTH_CLIENT_ID>", + "x-nullable": true + }, + "oauthClientSecret": { + "type": "string", + "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", + "x-example": "<OAUTH_CLIENT_SECRET>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Toggle session alert policy. Set to true if you want users to receive email notifications when a sessions are created for their users, or false to not send email alerts.", - "default": null, - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } ] } }, - "\/project\/policies\/session-duration": { + "\/project\/oauth2\/oidc": { "patch": { - "summary": "Update session duration policy", - "operationId": "projectUpdateSessionDurationPolicy", + "summary": "Update project OAuth2 Oidc", + "operationId": "projectUpdateOAuth2Oidc", "consumes": [ "application\/json" ], @@ -50237,30 +49168,26 @@ "tags": [ "project" ], - "description": "Update maximum duration how long sessions created within a project should stay active for.", + "description": "Update the project OAuth2 Oidc configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Oidc", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Oidc" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSessionDurationPolicy", - "group": "policies", - "weight": 1154, + "method": "updateOAuth2Oidc", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-session-duration-policy.md", + "demo": "project\/update-o-auth-2-oidc.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50284,26 +49211,62 @@ "schema": { "type": "object", "properties": { - "duration": { - "type": "integer", - "description": "Maximum session length in seconds. Minium allowed value is 5 second, and maximum is 1 year, which is 31536000 seconds.", - "default": null, - "x-example": 5, - "format": "int32" + "clientId": { + "type": "string", + "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "wellKnownURL": { + "type": "string", + "description": "OpenID Connect well-known configuration URL. When provided, authorization, token, and user info endpoints can be discovered automatically. For example: https:\/\/myoauth.com\/.well-known\/openid-configuration", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "authorizationURL": { + "type": "string", + "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "tokenURL": { + "type": "string", + "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "userInfoURL": { + "type": "string", + "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "duration" - ] + } } } ] } }, - "\/project\/policies\/session-invalidation": { + "\/project\/oauth2\/okta": { "patch": { - "summary": "Update session invalidation policy", - "operationId": "projectUpdateSessionInvalidationPolicy", + "summary": "Update project OAuth2 Okta", + "operationId": "projectUpdateOAuth2Okta", "consumes": [ "application\/json" ], @@ -50313,30 +49276,26 @@ "tags": [ "project" ], - "description": "Updating this policy allows you to control if existing sessions should be invalidated when a password of a user is changed. When enabled, and user changes their password, they will be logged out of all their devices.", + "description": "Update the project OAuth2 Okta configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Okta", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Okta" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSessionInvalidationPolicy", - "group": "policies", - "weight": 1155, + "method": "updateOAuth2Okta", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-session-invalidation-policy.md", + "demo": "project\/update-o-auth-2-okta.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50360,25 +49319,46 @@ "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "domain": { + "type": "string", + "description": "Okta company domain. Required when enabling the provider. For example: trial-6400025.okta.com. Example of wrong value: trial-6400025-admin.okta.com, or https:\/\/trial-6400025.okta.com\/", + "x-example": null, + "x-nullable": true + }, + "authorizationServerId": { + "type": "string", + "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", + "x-example": "<AUTHORIZATION_SERVER_ID>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Toggle session invalidation policy. Set to true if you want password change to invalidate all sessions of an user, or false to keep sessions active.", - "default": null, - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } ] } }, - "\/project\/policies\/session-limit": { + "\/project\/oauth2\/paypal": { "patch": { - "summary": "Update session limit policy", - "operationId": "projectUpdateSessionLimitPolicy", + "summary": "Update project OAuth2 Paypal", + "operationId": "projectUpdateOAuth2Paypal", "consumes": [ "application\/json" ], @@ -50388,30 +49368,26 @@ "tags": [ "project" ], - "description": "Update the maximum number of sessions allowed per user. When the limit is hit, the oldest session will be deleted to make room for new one.", + "description": "Update the project OAuth2 Paypal configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Paypal", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Paypal" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSessionLimitPolicy", - "group": "policies", - "weight": 1156, + "method": "updateOAuth2Paypal", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-session-limit-policy.md", + "demo": "project\/update-o-auth-2-paypal.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50435,27 +49411,34 @@ "schema": { "type": "object", "properties": { - "total": { - "type": "integer", - "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 5000, or null to disable the limit.", - "default": null, - "x-example": 1, - "format": "int32", + "clientId": { + "type": "string", + "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "secretKey": { + "type": "string", + "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true } - }, - "required": [ - "total" - ] + } } } ] } }, - "\/project\/policies\/user-limit": { + "\/project\/oauth2\/paypalSandbox": { "patch": { - "summary": "Update user limit policy", - "operationId": "projectUpdateUserLimitPolicy", + "summary": "Update project OAuth2 PaypalSandbox", + "operationId": "projectUpdateOAuth2PaypalSandbox", "consumes": [ "application\/json" ], @@ -50465,30 +49448,26 @@ "tags": [ "project" ], - "description": "Update the maximum number of users in the project. When the limit is hit or amount of existing users already exceeded the limit, all users remain active, but new user sign up will be prohibited.", + "description": "Update the project OAuth2 PaypalSandbox configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Paypal", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Paypal" } } }, "deprecated": false, "x-appwrite": { - "method": "updateUserLimitPolicy", - "group": "policies", - "weight": 1157, + "method": "updateOAuth2PaypalSandbox", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-user-limit-policy.md", + "demo": "project\/update-o-auth-2-paypal-sandbox.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.write", - "project.policies.write" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50512,100 +49491,63 @@ "schema": { "type": "object", "properties": { - "total": { - "type": "integer", - "description": "Set the maximum number of users allowed in the project. Value can be between 1 and 5000, or null to disable the limit.", - "default": null, - "x-example": 1, - "format": "int32", + "clientId": { + "type": "string", + "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "secretKey": { + "type": "string", + "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true } - }, - "required": [ - "total" - ] + } } } ] } }, - "\/project\/policies\/{policyId}": { - "get": { - "summary": "Get project policy", - "operationId": "projectGetPolicy", - "consumes": [], + "\/project\/oauth2\/podio": { + "patch": { + "summary": "Update project OAuth2 Podio", + "operationId": "projectUpdateOAuth2Podio", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "project" ], - "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", + "description": "Update the project OAuth2 Podio configuration.", "responses": { "200": { - "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Personal Data, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy", + "description": "OAuth2Podio", "schema": { - "x-oneOf": [ - { - "$ref": "#\/definitions\/policyPasswordDictionary" - }, - { - "$ref": "#\/definitions\/policyPasswordHistory" - }, - { - "$ref": "#\/definitions\/policyPasswordPersonalData" - }, - { - "$ref": "#\/definitions\/policySessionAlert" - }, - { - "$ref": "#\/definitions\/policySessionDuration" - }, - { - "$ref": "#\/definitions\/policySessionInvalidation" - }, - { - "$ref": "#\/definitions\/policySessionLimit" - }, - { - "$ref": "#\/definitions\/policyUserLimit" - }, - { - "$ref": "#\/definitions\/policyMembershipPrivacy" - } - ], - "x-discriminator": { - "propertyName": "$id", - "mapping": { - "password-dictionary": "#\/definitions\/policyPasswordDictionary", - "password-history": "#\/definitions\/policyPasswordHistory", - "password-personal-data": "#\/definitions\/policyPasswordPersonalData", - "session-alert": "#\/definitions\/policySessionAlert", - "session-duration": "#\/definitions\/policySessionDuration", - "session-invalidation": "#\/definitions\/policySessionInvalidation", - "session-limit": "#\/definitions\/policySessionLimit", - "user-limit": "#\/definitions\/policyUserLimit", - "membership-privacy": "#\/definitions\/policyMembershipPrivacy" - } - } + "$ref": "#\/definitions\/oAuth2Podio" } } }, "deprecated": false, "x-appwrite": { - "method": "getPolicy", - "group": "policies", - "weight": 1148, + "method": "updateOAuth2Podio", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get-policy.md", + "demo": "project\/update-o-auth-2-podio.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "policies.read", - "project.policies.read" - ], + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50624,33 +49566,39 @@ ], "parameters": [ { - "name": "policyId", - "description": "Policy ID. Can be one of: password-dictionary, password-history, password-personal-data, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy.", - "required": true, - "type": "string", - "x-example": "password-dictionary", - "enum": [ - "password-dictionary", - "password-history", - "password-personal-data", - "session-alert", - "session-duration", - "session-invalidation", - "session-limit", - "user-limit", - "membership-privacy" - ], - "x-enum-name": "ProjectPolicyId", - "x-enum-keys": [], - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } } ] } }, - "\/project\/protocols\/{protocolId}": { + "\/project\/oauth2\/salesforce": { "patch": { - "summary": "Update project protocol", - "operationId": "projectUpdateProtocol", + "summary": "Update project OAuth2 Salesforce", + "operationId": "projectUpdateOAuth2Salesforce", "consumes": [ "application\/json" ], @@ -50660,27 +49608,26 @@ "tags": [ "project" ], - "description": "Update properties of a specific protocol. Use this endpoint to enable or disable a protocol in your project. ", + "description": "Update the project OAuth2 Salesforce configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Salesforce", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Salesforce" } } }, "deprecated": false, "x-appwrite": { - "method": "updateProtocol", - "group": null, - "weight": 1111, + "method": "updateOAuth2Salesforce", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-protocol.md", + "demo": "project\/update-o-auth-2-salesforce.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50698,46 +49645,40 @@ } ], "parameters": [ - { - "name": "protocolId", - "description": "Protocol name. Can be one of: rest, graphql, websocket", - "required": true, - "type": "string", - "x-example": "rest", - "enum": [ - "rest", - "graphql", - "websocket" - ], - "x-enum-name": "ProjectProtocolId", - "x-enum-keys": [], - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Protocol status.", - "default": null, - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } + "customerKey": { + "type": "string", + "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", + "x-example": "<CUSTOMER_KEY>", + "x-nullable": true + }, + "customerSecret": { + "type": "string", + "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", + "x-example": "<CUSTOMER_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } + } ] } }, - "\/project\/services\/{serviceId}": { + "\/project\/oauth2\/slack": { "patch": { - "summary": "Update project service", - "operationId": "projectUpdateService", + "summary": "Update project OAuth2 Slack", + "operationId": "projectUpdateOAuth2Slack", "consumes": [ "application\/json" ], @@ -50747,27 +49688,26 @@ "tags": [ "project" ], - "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", + "description": "Update the project OAuth2 Slack configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Slack", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Slack" } } }, "deprecated": false, "x-appwrite": { - "method": "updateService", - "group": null, - "weight": 1112, + "method": "updateOAuth2Slack", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-service.md", + "demo": "project\/update-o-auth-2-slack.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50785,61 +49725,40 @@ } ], "parameters": [ - { - "name": "serviceId", - "description": "Service name. Can be one of: account, avatars, databases, tablesdb, locale, health, project, storage, teams, users, vcs, sites, functions, proxy, graphql, migrations, messaging, advisor", - "required": true, - "type": "string", - "x-example": "account", - "enum": [ - "account", - "avatars", - "databases", - "tablesdb", - "locale", - "health", - "project", - "storage", - "teams", - "users", - "vcs", - "sites", - "functions", - "proxy", - "graphql", - "migrations", - "messaging", - "advisor" - ], - "x-enum-name": "ProjectServiceId", - "x-enum-keys": [], - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { + "clientId": { + "type": "string", + "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, "enabled": { "type": "boolean", - "description": "Service status.", - "default": null, - "x-example": false + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "enabled" - ] + } } } ] } }, - "\/project\/smtp": { + "\/project\/oauth2\/spotify": { "patch": { - "summary": "Update project SMTP configuration", - "operationId": "projectUpdateSMTP", + "summary": "Update project OAuth2 Spotify", + "operationId": "projectUpdateOAuth2Spotify", "consumes": [ "application\/json" ], @@ -50849,27 +49768,26 @@ "tags": [ "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.", + "description": "Update the project OAuth2 Spotify configuration.", "responses": { "200": { - "description": "Project", + "description": "OAuth2Spotify", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/oAuth2Spotify" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSMTP", - "group": "smtp", - "weight": 1113, + "method": "updateOAuth2Spotify", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-smtp.md", + "demo": "project\/update-o-auth-2-spotify.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -50893,82 +49811,181 @@ "schema": { "type": "object", "properties": { - "host": { + "clientId": { "type": "string", - "description": "SMTP server hostname (domain)", - "default": null, - "x-example": null, - "x-nullable": true - }, - "port": { - "type": "integer", - "description": "SMTP server port", - "default": null, - "x-example": null, - "format": "int32", + "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "username": { + "clientSecret": { "type": "string", - "description": "SMTP server username. Leave empty for no authorization.", - "default": null, - "x-example": "<USERNAME>", + "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, - "password": { - "type": "string", - "description": "SMTP server password. Leave empty for no authorization. This property is stored securely and cannot be read in future (write-only).", - "default": null, - "x-example": "<PASSWORD>", + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true - }, - "senderEmail": { + } + } + } + } + ] + } + }, + "\/project\/oauth2\/stripe": { + "patch": { + "summary": "Update project OAuth2 Stripe", + "operationId": "projectUpdateOAuth2Stripe", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Stripe configuration.", + "responses": { + "200": { + "description": "OAuth2Stripe", + "schema": { + "$ref": "#\/definitions\/oAuth2Stripe" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateOAuth2Stripe", + "group": "oauth2", + "cookies": false, + "type": "", + "demo": "project\/update-o-auth-2-stripe.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "clientId": { "type": "string", - "description": "Email address shown in inbox as the sender of the email.", - "default": null, - "x-example": "email@example.com", - "format": "email", + "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "senderName": { + "apiSecretKey": { "type": "string", - "description": "Name shown in inbox as the sender of the email.", - "default": null, - "x-example": "<SENDER_NAME>", + "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", + "x-example": "<API_SECRET_KEY>", "x-nullable": true }, - "replyToEmail": { - "type": "string", - "description": "Email used when user replies to the email.", - "default": null, - "x-example": "email@example.com", - "format": "email", + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true - }, - "replyToName": { + } + } + } + } + ] + } + }, + "\/project\/oauth2\/tradeshift": { + "patch": { + "summary": "Update project OAuth2 Tradeshift", + "operationId": "projectUpdateOAuth2Tradeshift", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "project" + ], + "description": "Update the project OAuth2 Tradeshift configuration.", + "responses": { + "200": { + "description": "OAuth2Tradeshift", + "schema": { + "$ref": "#\/definitions\/oAuth2Tradeshift" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateOAuth2Tradeshift", + "group": "oauth2", + "cookies": false, + "type": "", + "demo": "project\/update-o-auth-2-tradeshift.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "oauth2.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "oauth2ClientId": { "type": "string", - "description": "Name used when user replies to the email.", - "default": null, - "x-example": "<REPLY_TO_NAME>", + "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "x-example": "<OAUTH2_CLIENT_ID>", "x-nullable": true }, - "secure": { + "oauth2ClientSecret": { "type": "string", - "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", - "default": null, - "x-example": "tls", - "enum": [ - "tls", - "ssl" - ], - "x-enum-name": "ProjectSMTPSecure", - "x-enum-keys": [], + "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "x-example": "<OAUTH2_CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", - "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", - "default": null, + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", "x-example": false, "x-nullable": true } @@ -50978,35 +49995,39 @@ ] } }, - "\/project\/smtp\/tests": { - "post": { - "summary": "Create project SMTP test", - "operationId": "projectCreateSMTPTest", + "\/project\/oauth2\/tradeshiftBox": { + "patch": { + "summary": "Update project OAuth2 Tradeshift Sandbox", + "operationId": "projectUpdateOAuth2TradeshiftSandbox", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "project" ], - "description": "Send a test email to verify SMTP configuration. ", + "description": "Update the project OAuth2 Tradeshift Sandbox configuration.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "OAuth2Tradeshift", + "schema": { + "$ref": "#\/definitions\/oAuth2Tradeshift" + } } }, "deprecated": false, "x-appwrite": { - "method": "createSMTPTest", - "group": "smtp", - "weight": 1114, + "method": "updateOAuth2TradeshiftSandbox", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-smtp-test.md", + "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51030,56 +50051,63 @@ "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" - } + "oauth2ClientId": { + "type": "string", + "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", + "x-example": "<OAUTH2_CLIENT_ID>", + "x-nullable": true + }, + "oauth2ClientSecret": { + "type": "string", + "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", + "x-example": "<OAUTH2_CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "emails" - ] + } } } ] } }, - "\/project\/templates\/email": { - "get": { - "summary": "List project email templates", - "operationId": "projectListEmailTemplates", - "consumes": [], + "\/project\/oauth2\/twitch": { + "patch": { + "summary": "Update project OAuth2 Twitch", + "operationId": "projectUpdateOAuth2Twitch", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "project" ], - "description": "Get a list of all custom email templates configured for the project. This endpoint returns an array of all configured email templates and their locales.", + "description": "Update the project OAuth2 Twitch configuration.", "responses": { "200": { - "description": "Email Templates List", + "description": "OAuth2Twitch", "schema": { - "$ref": "#\/definitions\/emailTemplateList" + "$ref": "#\/definitions\/oAuth2Twitch" } } }, "deprecated": false, "x-appwrite": { - "method": "listEmailTemplates", - "group": "templates", - "weight": 1115, + "method": "updateOAuth2Twitch", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/list-email-templates.md", + "demo": "project\/update-o-auth-2-twitch.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "templates.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51098,31 +50126,39 @@ ], "parameters": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", - "required": false, - "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": { + "clientId": { + "type": "string", + "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } } ] - }, + } + }, + "\/project\/oauth2\/wordpress": { "patch": { - "summary": "Update project email template", - "operationId": "projectUpdateEmailTemplate", + "summary": "Update project OAuth2 WordPress", + "operationId": "projectUpdateOAuth2WordPress", "consumes": [ "application\/json" ], @@ -51132,27 +50168,26 @@ "tags": [ "project" ], - "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 project OAuth2 WordPress configuration.", "responses": { "200": { - "description": "EmailTemplate", + "description": "OAuth2WordPress", "schema": { - "$ref": "#\/definitions\/emailTemplate" + "$ref": "#\/definitions\/oAuth2WordPress" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEmailTemplate", - "group": "templates", - "weight": 1117, + "method": "updateOAuth2WordPress", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-email-template.md", + "demo": "project\/update-o-auth-2-word-press.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "templates.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51176,249 +50211,63 @@ "schema": { "type": "object", "properties": { - "templateId": { + "clientId": { "type": "string", - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", - "default": null, - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [] + "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "locale": { + "clientSecret": { "type": "string", - "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", - "default": "", - "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": "ProjectEmailTemplateLocale", - "x-enum-keys": [] - }, - "subject": { - "type": "string", - "description": "Subject of the email template. Can be up to 255 characters.", - "default": null, - "x-example": "<SUBJECT>", - "x-nullable": true - }, - "message": { - "type": "string", - "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", - "default": null, - "x-example": "<MESSAGE>", - "x-nullable": true - }, - "senderName": { - "type": "string", - "description": "Name of the email sender.", - "default": null, - "x-example": "<SENDER_NAME>", - "x-nullable": true - }, - "senderEmail": { - "type": "string", - "description": "Email of the sender.", - "default": null, - "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "replyToEmail": { - "type": "string", - "description": "Reply to email.", - "default": null, - "x-example": "email@example.com", - "format": "email", + "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, - "replyToName": { - "type": "string", - "description": "Reply to name.", - "default": null, - "x-example": "<REPLY_TO_NAME>", + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, "x-nullable": true } - }, - "required": [ - "templateId" - ] + } } } ] } }, - "\/project\/templates\/email\/{templateId}": { - "get": { - "summary": "Get project email template", - "operationId": "projectGetEmailTemplate", - "consumes": [], + "\/project\/oauth2\/x": { + "patch": { + "summary": "Update project OAuth2 X", + "operationId": "projectUpdateOAuth2X", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "project" ], - "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 project OAuth2 X configuration.", "responses": { "200": { - "description": "EmailTemplate", + "description": "OAuth2X", "schema": { - "$ref": "#\/definitions\/emailTemplate" + "$ref": "#\/definitions\/oAuth2X" } } }, "deprecated": false, "x-appwrite": { - "method": "getEmailTemplate", - "group": "templates", - "weight": 1116, + "method": "updateOAuth2X", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get-email-template.md", + "demo": "project\/update-o-auth-2x.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "templates.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51437,290 +50286,148 @@ ], "parameters": [ { - "name": "templateId", - "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", - "required": true, - "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [], - "in": "path" - }, - { - "name": "locale", - "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", - "required": false, - "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": "ProjectEmailTemplateLocale", - "x-enum-keys": [], - "default": "", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "customerKey": { + "type": "string", + "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", + "x-example": "<CUSTOMER_KEY>", + "x-nullable": true + }, + "secretKey": { + "type": "string", + "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", + "x-example": "<SECRET_KEY>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } } ] } }, - "\/project\/usage": { - "get": { - "summary": "Get project usage stats", - "operationId": "projectGetUsage", - "consumes": [], + "\/project\/oauth2\/yahoo": { + "patch": { + "summary": "Update project OAuth2 Yahoo", + "operationId": "projectUpdateOAuth2Yahoo", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "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.", + "description": "Update the project OAuth2 Yahoo configuration.", "responses": { "200": { - "description": "UsageProject", + "description": "OAuth2Yahoo", "schema": { - "$ref": "#\/definitions\/usageProject" + "$ref": "#\/definitions\/oAuth2Yahoo" } } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 699, + "method": "updateOAuth2Yahoo", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/get-usage.md", + "demo": "project\/update-o-auth-2-yahoo.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "oauth2.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "startDate", - "description": "Starting date for the usage", - "required": true, - "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00", - "in": "query" - }, - { - "name": "endDate", - "description": "End date for the usage", - "required": true, - "type": "string", - "format": "datetime", - "x-example": "2020-10-15T06:38:00.000+00:00", - "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" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "clientId": { + "type": "string", + "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } } ] } }, - "\/project\/variables": { - "get": { - "summary": "List project variables", - "operationId": "projectListVariables", - "consumes": [], + "\/project\/oauth2\/yandex": { + "patch": { + "summary": "Update project OAuth2 Yandex", + "operationId": "projectUpdateOAuth2Yandex", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "project" ], - "description": "Get a list of all project environment variables.", + "description": "Update the project OAuth2 Yandex configuration.", "responses": { "200": { - "description": "Variables List", + "description": "OAuth2Yandex", "schema": { - "$ref": "#\/definitions\/variableList" + "$ref": "#\/definitions\/oAuth2Yandex" } } }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 1119, + "method": "updateOAuth2Yandex", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/list-variables.md", + "demo": "project\/update-o-auth-2-yandex.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.read", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51739,32 +50446,40 @@ ], "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: key, resourceType, resourceId, secret", - "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": { + "clientId": { + "type": "string", + "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", + "x-example": "<CLIENT_ID>", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true + } + } + } } ] - }, - "post": { - "summary": "Create project variable", - "operationId": "projectCreateVariable", - "consumes": [ + } + }, + "\/project\/oauth2\/zoho": { + "patch": { + "summary": "Update project OAuth2 Zoho", + "operationId": "projectUpdateOAuth2Zoho", + "consumes": [ "application\/json" ], "produces": [ @@ -51773,27 +50488,26 @@ "tags": [ "project" ], - "description": "Create a new project environment variable. These variables can be accessed by all functions and sites in the project.", + "description": "Update the project OAuth2 Zoho configuration.", "responses": { - "201": { - "description": "Variable", + "200": { + "description": "OAuth2Zoho", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/oAuth2Zoho" } } }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 1118, + "method": "updateOAuth2Zoho", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/create-variable.md", + "demo": "project\/update-o-auth-2-zoho.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51817,103 +50531,34 @@ "schema": { "type": "object", "properties": { - "variableId": { - "type": "string", - "description": "Variable 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": "<VARIABLE_ID>" - }, - "key": { + "clientId": { "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>" + "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", + "x-example": "<CLIENT_ID>", + "x-nullable": true }, - "value": { + "clientSecret": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "default": null, - "x-example": "<VALUE>" + "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", + "x-example": "<CLIENT_SECRET>", + "x-nullable": true }, - "secret": { + "enabled": { "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 + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "variableId", - "key", - "value" - ] + } } } ] } }, - "\/project\/variables\/{variableId}": { - "get": { - "summary": "Get project variable", - "operationId": "projectGetVariable", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "project" - ], - "description": "Get a variable by its unique ID. ", - "responses": { - "200": { - "description": "Variable", - "schema": { - "$ref": "#\/definitions\/variable" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 1120, - "cookies": false, - "type": "", - "demo": "project\/get-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "project.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "type": "string", - "x-example": "<VARIABLE_ID>", - "in": "path" - } - ] - }, - "put": { - "summary": "Update project variable", - "operationId": "projectUpdateVariable", + "\/project\/oauth2\/zoom": { + "patch": { + "summary": "Update project OAuth2 Zoom", + "operationId": "projectUpdateOAuth2Zoom", "consumes": [ "application\/json" ], @@ -51923,27 +50568,26 @@ "tags": [ "project" ], - "description": "Update variable by its unique ID.", + "description": "Update the project OAuth2 Zoom configuration.", "responses": { "200": { - "description": "Variable", + "description": "OAuth2Zoom", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/oAuth2Zoom" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 1122, + "method": "updateOAuth2Zoom", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/update-variable.md", + "demo": "project\/update-o-auth-2-zoom.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.write", "platforms": [ "console", "server" @@ -51961,38 +50605,27 @@ } ], "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": { + "clientId": { "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>", + "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", + "x-example": "<CLIENT_ID>", "x-nullable": true }, - "value": { + "clientSecret": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "default": null, - "x-example": "<VALUE>", + "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", + "x-example": "<CLIENT_SECRET>", "x-nullable": true }, - "secret": { + "enabled": { "type": "boolean", - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", - "default": null, + "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", "x-example": false, "x-nullable": true } @@ -52000,35 +50633,207 @@ } } ] - }, - "delete": { - "summary": "Delete project variable", - "operationId": "projectDeleteVariable", - "consumes": [ + } + }, + "\/project\/oauth2\/{providerId}": { + "get": { + "summary": "Get project OAuth2 provider", + "operationId": "projectGetOAuth2Provider", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ "project" ], - "description": "Delete a variable by its unique ID. ", + "description": "Get a single OAuth2 provider configuration. Credential fields (client secret, p8 file, key\/team IDs) are write-only and always returned empty.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "OAuth2GitHub, or OAuth2Discord, or OAuth2Figma, or OAuth2Dropbox, or OAuth2Dailymotion, or OAuth2Bitbucket, or OAuth2Bitly, or OAuth2Box, or OAuth2Autodesk, or OAuth2Google, or OAuth2Zoom, or OAuth2Zoho, or OAuth2Yandex, or OAuth2X, or OAuth2WordPress, or OAuth2Twitch, or OAuth2Stripe, or OAuth2Spotify, or OAuth2Slack, or OAuth2Podio, or OAuth2Notion, or OAuth2Salesforce, or OAuth2Yahoo, or OAuth2Linkedin, or OAuth2Disqus, or OAuth2Amazon, or OAuth2Etsy, or OAuth2Facebook, or OAuth2Tradeshift, or OAuth2Paypal, or OAuth2Gitlab, or OAuth2Authentik, or OAuth2Auth0, or OAuth2FusionAuth, or OAuth2Keycloak, or OAuth2Oidc, or OAuth2Apple, or OAuth2Okta, or OAuth2Kick, or OAuth2Microsoft", + "schema": { + "x-oneOf": [ + { + "$ref": "#\/definitions\/oAuth2Github" + }, + { + "$ref": "#\/definitions\/oAuth2Discord" + }, + { + "$ref": "#\/definitions\/oAuth2Figma" + }, + { + "$ref": "#\/definitions\/oAuth2Dropbox" + }, + { + "$ref": "#\/definitions\/oAuth2Dailymotion" + }, + { + "$ref": "#\/definitions\/oAuth2Bitbucket" + }, + { + "$ref": "#\/definitions\/oAuth2Bitly" + }, + { + "$ref": "#\/definitions\/oAuth2Box" + }, + { + "$ref": "#\/definitions\/oAuth2Autodesk" + }, + { + "$ref": "#\/definitions\/oAuth2Google" + }, + { + "$ref": "#\/definitions\/oAuth2Zoom" + }, + { + "$ref": "#\/definitions\/oAuth2Zoho" + }, + { + "$ref": "#\/definitions\/oAuth2Yandex" + }, + { + "$ref": "#\/definitions\/oAuth2X" + }, + { + "$ref": "#\/definitions\/oAuth2WordPress" + }, + { + "$ref": "#\/definitions\/oAuth2Twitch" + }, + { + "$ref": "#\/definitions\/oAuth2Stripe" + }, + { + "$ref": "#\/definitions\/oAuth2Spotify" + }, + { + "$ref": "#\/definitions\/oAuth2Slack" + }, + { + "$ref": "#\/definitions\/oAuth2Podio" + }, + { + "$ref": "#\/definitions\/oAuth2Notion" + }, + { + "$ref": "#\/definitions\/oAuth2Salesforce" + }, + { + "$ref": "#\/definitions\/oAuth2Yahoo" + }, + { + "$ref": "#\/definitions\/oAuth2Linkedin" + }, + { + "$ref": "#\/definitions\/oAuth2Disqus" + }, + { + "$ref": "#\/definitions\/oAuth2Amazon" + }, + { + "$ref": "#\/definitions\/oAuth2Etsy" + }, + { + "$ref": "#\/definitions\/oAuth2Facebook" + }, + { + "$ref": "#\/definitions\/oAuth2Tradeshift" + }, + { + "$ref": "#\/definitions\/oAuth2Paypal" + }, + { + "$ref": "#\/definitions\/oAuth2Gitlab" + }, + { + "$ref": "#\/definitions\/oAuth2Authentik" + }, + { + "$ref": "#\/definitions\/oAuth2Auth0" + }, + { + "$ref": "#\/definitions\/oAuth2FusionAuth" + }, + { + "$ref": "#\/definitions\/oAuth2Keycloak" + }, + { + "$ref": "#\/definitions\/oAuth2Oidc" + }, + { + "$ref": "#\/definitions\/oAuth2Apple" + }, + { + "$ref": "#\/definitions\/oAuth2Okta" + }, + { + "$ref": "#\/definitions\/oAuth2Kick" + }, + { + "$ref": "#\/definitions\/oAuth2Microsoft" + } + ], + "x-discriminator": { + "propertyName": "$id", + "mapping": { + "github": "#\/definitions\/oAuth2Github", + "discord": "#\/definitions\/oAuth2Discord", + "figma": "#\/definitions\/oAuth2Figma", + "dropbox": "#\/definitions\/oAuth2Dropbox", + "dailymotion": "#\/definitions\/oAuth2Dailymotion", + "bitbucket": "#\/definitions\/oAuth2Bitbucket", + "bitly": "#\/definitions\/oAuth2Bitly", + "box": "#\/definitions\/oAuth2Box", + "autodesk": "#\/definitions\/oAuth2Autodesk", + "google": "#\/definitions\/oAuth2Google", + "zoom": "#\/definitions\/oAuth2Zoom", + "zoho": "#\/definitions\/oAuth2Zoho", + "yandex": "#\/definitions\/oAuth2Yandex", + "x": "#\/definitions\/oAuth2X", + "wordpress": "#\/definitions\/oAuth2WordPress", + "twitch": "#\/definitions\/oAuth2Twitch", + "stripe": "#\/definitions\/oAuth2Stripe", + "spotify": "#\/definitions\/oAuth2Spotify", + "slack": "#\/definitions\/oAuth2Slack", + "podio": "#\/definitions\/oAuth2Podio", + "notion": "#\/definitions\/oAuth2Notion", + "salesforce": "#\/definitions\/oAuth2Salesforce", + "yahoo": "#\/definitions\/oAuth2Yahoo", + "linkedin": "#\/definitions\/oAuth2Linkedin", + "disqus": "#\/definitions\/oAuth2Disqus", + "amazon": "#\/definitions\/oAuth2Amazon", + "etsy": "#\/definitions\/oAuth2Etsy", + "facebook": "#\/definitions\/oAuth2Facebook", + "tradeshift": "#\/definitions\/oAuth2Tradeshift", + "tradeshiftBox": "#\/definitions\/oAuth2Tradeshift", + "paypal": "#\/definitions\/oAuth2Paypal", + "paypalSandbox": "#\/definitions\/oAuth2Paypal", + "gitlab": "#\/definitions\/oAuth2Gitlab", + "authentik": "#\/definitions\/oAuth2Authentik", + "auth0": "#\/definitions\/oAuth2Auth0", + "fusionauth": "#\/definitions\/oAuth2FusionAuth", + "keycloak": "#\/definitions\/oAuth2Keycloak", + "oidc": "#\/definitions\/oAuth2Oidc", + "apple": "#\/definitions\/oAuth2Apple", + "okta": "#\/definitions\/oAuth2Okta", + "kick": "#\/definitions\/oAuth2Kick", + "microsoft": "#\/definitions\/oAuth2Microsoft" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 1121, + "method": "getOAuth2Provider", + "group": "oauth2", "cookies": false, "type": "", - "demo": "project\/delete-variable.md", + "demo": "project\/get-o-auth-2-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "project.write", + "scope": "oauth2.read", "platforms": [ "console", "server" @@ -52047,50 +50852,96 @@ ], "parameters": [ { - "name": "variableId", - "description": "Variable unique ID.", + "name": "providerId", + "description": "OAuth2 provider key. For example: github, google, apple.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "amazon", + "enum": [ + "amazon", + "apple", + "auth0", + "authentik", + "autodesk", + "bitbucket", + "bitly", + "box", + "dailymotion", + "discord", + "disqus", + "dropbox", + "etsy", + "facebook", + "figma", + "fusionauth", + "github", + "gitlab", + "google", + "keycloak", + "kick", + "linkedin", + "microsoft", + "notion", + "oidc", + "okta", + "paypal", + "paypalSandbox", + "podio", + "salesforce", + "slack", + "spotify", + "stripe", + "tradeshift", + "tradeshiftBox", + "twitch", + "wordpress", + "x", + "yahoo", + "yammer", + "yandex", + "zoho", + "zoom" + ], + "x-enum-name": "ProjectOAuthProviderId", "in": "path" } ] } }, - "\/projects": { + "\/project\/platforms": { "get": { - "summary": "List projects", - "operationId": "projectsList", + "summary": "List project platforms", + "operationId": "projectListPlatforms", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "project" ], - "description": "Get a list of all projects. You can use the query params to filter your results. ", + "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations.", "responses": { "200": { - "description": "Projects List", + "description": "Platforms List", "schema": { - "$ref": "#\/definitions\/projectList" + "$ref": "#\/definitions\/platformList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "projects", - "weight": 1106, + "method": "listPlatforms", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/list.md", + "demo": "project\/list-platforms.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "platforms.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52100,13 +50951,14 @@ }, "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, 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\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: type, name, hostname, bundleIdentifier, applicationId, packageIdentifierName, packageName", "required": false, "type": "array", "collectionFormat": "multi", @@ -52116,15 +50968,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.", @@ -52135,10 +50978,12 @@ "in": "query" } ] - }, + } + }, + "\/project\/platforms\/android": { "post": { - "summary": "Create project", - "operationId": "projectsCreate", + "summary": "Create project Android platform", + "operationId": "projectCreateAndroidPlatform", "consumes": [ "application\/json" ], @@ -52146,42 +50991,42 @@ "application\/json" ], "tags": [ - "projects" + "project" ], - "description": "Create a new project. You can create a maximum of 100 projects per account. ", + "description": "Create a new Android platform for your project. Use this endpoint to register a new Android platform where your users will run your application which will interact with the Appwrite API.", "responses": { "201": { - "description": "Project", + "description": "Platform Android", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/platformAndroid" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "projects", - "weight": 1104, + "method": "createAndroidPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/create.md", + "demo": "project\/create-android-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -52191,55 +51036,36 @@ "schema": { "type": "object", "properties": { - "projectId": { + "platformId": { "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 + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" }, "name": { "type": "string", - "description": "Project name. Max length: 128 chars.", - "default": null, + "description": "Platform name. Max length: 128 chars.", "x-example": "<NAME>" }, - "teamId": { - "type": "string", - "description": "Team unique ID.", - "default": null, - "x-example": "<TEAM_ID>" - }, - "region": { + "applicationId": { "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": "Android application ID. Max length: 256 chars.", + "x-example": "<APPLICATION_ID>" } }, "required": [ - "projectId", + "platformId", "name", - "teamId" + "applicationId" ] } } ] } }, - "\/projects\/{projectId}": { - "patch": { - "summary": "Update project", - "operationId": "projectsUpdate", + "\/project\/platforms\/android\/{platformId}": { + "put": { + "summary": "Update project Android platform", + "operationId": "projectUpdateAndroidPlatform", "consumes": [ "application\/json" ], @@ -52247,51 +51073,51 @@ "application\/json" ], "tags": [ - "projects" + "project" ], - "description": "Update a project by its unique ID.", + "description": "Update an Android platform by its unique ID. Use this endpoint to update the platform's name or application ID.", "responses": { "200": { - "description": "Project", + "description": "Platform Android", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/platformAndroid" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "projects", - "weight": 1105, + "method": "updateAndroidPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/update.md", + "demo": "project\/update-android-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<PLATFORM_ID>", "in": "path" }, { @@ -52302,78 +51128,28 @@ "properties": { "name": { "type": "string", - "description": "Project name. Max length: 128 chars.", - "default": null, + "description": "Platform name. Max length: 128 chars.", "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": { + "applicationId": { "type": "string", - "description": "Project legal tax ID. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_TAX_ID>" + "description": "Android application ID. Max length: 256 chars.", + "x-example": "<APPLICATION_ID>" } }, "required": [ - "name" + "name", + "applicationId" ] } } ] } }, - "\/projects\/{projectId}\/console-access": { - "patch": { - "summary": "Record console access to a project", - "operationId": "projectsUpdateConsoleAccess", + "\/project\/platforms\/apple": { + "post": { + "summary": "Create project Apple platform", + "operationId": "projectCreateApplePlatform", "consumes": [ "application\/json" ], @@ -52381,87 +51157,113 @@ "application\/json" ], "tags": [ - "projects" + "project" ], - "description": "Record console access to a project. This endpoint updates the last accessed timestamp for the project to track console activity.\n", + "description": "Create a new Apple platform for your project. Use this endpoint to register a new Apple platform where your users will run your application which will interact with the Appwrite API.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Platform Apple", + "schema": { + "$ref": "#\/definitions\/platformApple" + } } }, "deprecated": false, "x-appwrite": { - "method": "updateConsoleAccess", - "group": null, - "weight": 1101, + "method": "createApplePlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/update-console-access.md", + "demo": "project\/create-apple-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-console-access.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project ID", - "required": true, - "type": "string", - "x-example": "<PROJECT_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "platformId": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + }, + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier. Max length: 256 chars.", + "x-example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "platformId", + "name", + "bundleIdentifier" + ] + } } ] } }, - "\/projects\/{projectId}\/dev-keys": { - "get": { - "summary": "List dev keys", - "operationId": "projectsListDevKeys", - "consumes": [], + "\/project\/platforms\/apple\/{platformId}": { + "put": { + "summary": "Update project Apple platform", + "operationId": "projectUpdateApplePlatform", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "projects" + "project" ], - "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": "Update an Apple platform by its unique ID. Use this endpoint to update the platform's name or bundle identifier.", "responses": { "200": { - "description": "Dev Keys List", + "description": "Platform Apple", "schema": { - "$ref": "#\/definitions\/devKeyList" + "$ref": "#\/definitions\/platformApple" } } }, "deprecated": false, "x-appwrite": { - "method": "listDevKeys", - "group": "devKeys", - "weight": 407, + "method": "updateApplePlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/list-dev-keys.md", + "demo": "project\/update-apple-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52471,35 +51273,49 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<PLATFORM_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" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "bundleIdentifier": { + "type": "string", + "description": "Apple bundle identifier. Max length: 256 chars.", + "x-example": "<BUNDLE_IDENTIFIER>" + } + }, + "required": [ + "name", + "bundleIdentifier" + ] + } } ] - }, + } + }, + "\/project\/platforms\/linux": { "post": { - "summary": "Create dev key", - "operationId": "projectsCreateDevKey", + "summary": "Create project Linux platform", + "operationId": "projectCreateLinuxPlatform", "consumes": [ "application\/json" ], @@ -52507,31 +51323,31 @@ "application\/json" ], "tags": [ - "projects" + "project" ], - "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 Linux platform for your project. Use this endpoint to register a new Linux platform where your users will run your application which will interact with the Appwrite API.", "responses": { "201": { - "description": "DevKey", + "description": "Platform Linux", "schema": { - "$ref": "#\/definitions\/devKey" + "$ref": "#\/definitions\/platformLinux" } } }, "deprecated": false, "x-appwrite": { - "method": "createDevKey", - "group": "devKeys", - "weight": 404, + "method": "createLinuxPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/create-dev-key.md", + "demo": "project\/create-linux-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52541,81 +51357,79 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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": { + "platformId": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + }, "name": { "type": "string", - "description": "Key name. Max length: 128 chars.", - "default": null, + "description": "Platform name. Max length: 128 chars.", "x-example": "<NAME>" }, - "expire": { + "packageName": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", - "default": null, - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" + "description": "Linux package name. Max length: 256 chars.", + "x-example": "<PACKAGE_NAME>" } }, "required": [ + "platformId", "name", - "expire" + "packageName" ] } } ] } }, - "\/projects\/{projectId}\/dev-keys\/{keyId}": { - "get": { - "summary": "Get dev key", - "operationId": "projectsGetDevKey", - "consumes": [], + "\/project\/platforms\/linux\/{platformId}": { + "put": { + "summary": "Update project Linux platform", + "operationId": "projectUpdateLinuxPlatform", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "projects" + "project" ], - "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": "Update a Linux platform by its unique ID. Use this endpoint to update the platform's name or package name.", "responses": { "200": { - "description": "DevKey", + "description": "Platform Linux", "schema": { - "$ref": "#\/definitions\/devKey" + "$ref": "#\/definitions\/platformLinux" } } }, "deprecated": false, "x-appwrite": { - "method": "getDevKey", - "group": "devKeys", - "weight": 406, + "method": "updateLinuxPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/get-dev-key.md", + "demo": "project\/update-linux-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52625,31 +51439,49 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<PLATFORM_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": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "packageName": { + "type": "string", + "description": "Linux package name. Max length: 256 chars.", + "x-example": "<PACKAGE_NAME>" + } + }, + "required": [ + "name", + "packageName" + ] + } } ] - }, - "put": { - "summary": "Update dev key", - "operationId": "projectsUpdateDevKey", + } + }, + "\/project\/platforms\/web": { + "post": { + "summary": "Create project web platform", + "operationId": "projectCreateWebPlatform", "consumes": [ "application\/json" ], @@ -52657,31 +51489,31 @@ "application\/json" ], "tags": [ - "projects" + "project" ], - "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": "Create a new web 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": { - "200": { - "description": "DevKey", + "201": { + "description": "Platform Web", "schema": { - "$ref": "#\/definitions\/devKey" + "$ref": "#\/definitions\/platformWeb" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDevKey", - "group": "devKeys", - "weight": 405, + "method": "createWebPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/update-dev-key.md", + "demo": "project\/create-web-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52691,84 +51523,79 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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": { + "platformId": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + }, "name": { "type": "string", - "description": "Key name. Max length: 128 chars.", - "default": null, + "description": "Platform name. Max length: 128 chars.", "x-example": "<NAME>" }, - "expire": { + "hostname": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", - "default": null, - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime" + "description": "Platform web hostname. Max length: 256 chars.", + "x-example": "app.example.com" } }, "required": [ + "platformId", "name", - "expire" + "hostname" ] } } ] - }, - "delete": { - "summary": "Delete dev key", - "operationId": "projectsDeleteDevKey", + } + }, + "\/project\/platforms\/web\/{platformId}": { + "put": { + "summary": "Update project web platform", + "operationId": "projectUpdateWebPlatform", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "projects" + "project" ], - "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": "Update a web platform by its unique ID. Use this endpoint to update the platform's name or hostname.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Platform Web", + "schema": { + "$ref": "#\/definitions\/platformWeb" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDevKey", - "group": "devKeys", - "weight": 408, + "method": "updateWebPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/delete-dev-key.md", + "demo": "project\/update-web-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -52778,111 +51605,131 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<PLATFORM_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": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "hostname": { + "type": "string", + "description": "Platform web hostname. Max length: 256 chars.", + "x-example": "app.example.com" + } + }, + "required": [ + "name", + "hostname" + ] + } } ] } }, - "\/projects\/{projectId}\/schedules": { - "get": { - "summary": "List schedules", - "operationId": "projectsListSchedules", - "consumes": [], + "\/project\/platforms\/windows": { + "post": { + "summary": "Create project Windows platform", + "operationId": "projectCreateWindowsPlatform", + "consumes": [ + "application\/json" + ], "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": "Create a new Windows platform for your project. Use this endpoint to register a new Windows platform where your users will run your application which will interact with the Appwrite API.", "responses": { - "200": { - "description": "Schedules List", + "201": { + "description": "Platform Windows", "schema": { - "$ref": "#\/definitions\/scheduleList" + "$ref": "#\/definitions\/platformWindows" } } }, "deprecated": false, "x-appwrite": { - "method": "listSchedules", - "group": "schedules", - "weight": 415, + "method": "createWindowsPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/list-schedules.md", + "demo": "project\/create-windows-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-schedules.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "platformId": { + "type": "string", + "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" + }, + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "packageIdentifierName": { + "type": "string", + "description": "Windows package identifier name. Max length: 256 chars.", + "x-example": "<PACKAGE_IDENTIFIER_NAME>" + } + }, + "required": [ + "platformId", + "name", + "packageIdentifierName" + ] + } } ] - }, - "post": { - "summary": "Create schedule", - "operationId": "projectsCreateSchedule", + } + }, + "\/project\/platforms\/windows\/{platformId}": { + "put": { + "summary": "Update project Windows platform", + "operationId": "projectUpdateWindowsPlatform", "consumes": [ "application\/json" ], @@ -52890,51 +51737,51 @@ "application\/json" ], "tags": [ - "projects" + "project" ], - "description": "Create a new schedule for a resource.", + "description": "Update a Windows platform by its unique ID. Use this endpoint to update the platform's name or package identifier name.", "responses": { - "201": { - "description": "Schedule", + "200": { + "description": "Platform Windows", "schema": { - "$ref": "#\/definitions\/schedule" + "$ref": "#\/definitions\/platformWindows" } } }, "deprecated": false, "x-appwrite": { - "method": "createSchedule", - "group": "schedules", - "weight": 1107, + "method": "updateWindowsPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/create-schedule.md", + "demo": "project\/update-windows-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-schedule.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<PLATFORM_ID>", "in": "path" }, { @@ -52943,136 +51790,121 @@ "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": { + "name": { "type": "string", - "description": "The resource ID to associate with this schedule.", - "default": null, - "x-example": "<RESOURCE_ID>" + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "schedule": { + "packageIdentifierName": { "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": "{}" + "description": "Windows package identifier name. Max length: 256 chars.", + "x-example": "<PACKAGE_IDENTIFIER_NAME>" } }, "required": [ - "resourceType", - "resourceId", - "schedule" + "name", + "packageIdentifierName" ] } } ] } }, - "\/projects\/{projectId}\/schedules\/{scheduleId}": { + "\/project\/platforms\/{platformId}": { "get": { - "summary": "Get schedule", - "operationId": "projectsGetSchedule", + "summary": "Get project platform", + "operationId": "projectGetPlatform", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "project" ], - "description": "Get a schedule by its unique ID.", + "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": "Schedule", + "description": "Platform Web, or Platform Apple, or Platform Android, or Platform Windows, or Platform Linux", "schema": { - "$ref": "#\/definitions\/schedule" + "x-oneOf": [ + { + "$ref": "#\/definitions\/platformWeb" + }, + { + "$ref": "#\/definitions\/platformApple" + }, + { + "$ref": "#\/definitions\/platformAndroid" + }, + { + "$ref": "#\/definitions\/platformWindows" + }, + { + "$ref": "#\/definitions\/platformLinux" + } + ], + "x-discriminator": { + "propertyName": "type", + "mapping": { + "web": "#\/definitions\/platformWeb", + "apple": "#\/definitions\/platformApple", + "android": "#\/definitions\/platformAndroid", + "windows": "#\/definitions\/platformWindows", + "linux": "#\/definitions\/platformLinux" + } + } } } }, "deprecated": false, "x-appwrite": { - "method": "getSchedule", - "group": "schedules", - "weight": 414, + "method": "getPlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/get-schedule.md", + "demo": "project\/get-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", + "scope": "platforms.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-schedule.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "type": "string", - "x-example": "<PROJECT_ID>", - "in": "path" - }, - { - "name": "scheduleId", - "description": "Schedule ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "type": "string", - "x-example": "<SCHEDULE_ID>", + "x-example": "<PLATFORM_ID>", "in": "path" } ] - } - }, - "\/projects\/{projectId}\/status": { - "patch": { - "summary": "Update the status of a project", - "operationId": "projectsUpdateStatus", + }, + "delete": { + "summary": "Delete project platform", + "operationId": "projectDeletePlatform", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "projects" + "project" ], - "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", + "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" @@ -53080,177 +51912,77 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateStatus", - "group": null, - "weight": 1102, - "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": 1103, + "method": "deletePlatform", + "group": "platforms", "cookies": false, "type": "", - "demo": "projects\/update-team.md", + "demo": "project\/delete-platform.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "platforms.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-team.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "platformId", + "description": "Platform ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<PLATFORM_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" - ] - } } ] } }, - "\/proxy\/rules": { + "\/project\/policies": { "get": { - "summary": "List rules", - "operationId": "proxyListRules", + "summary": "List project policies", + "operationId": "projectListPolicies", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "proxy" + "project" ], - "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 project policies and their current configuration.", "responses": { "200": { - "description": "Rule List", + "description": "Policies List", "schema": { - "$ref": "#\/definitions\/proxyRuleList" + "$ref": "#\/definitions\/policyList" } } }, "deprecated": false, "x-appwrite": { - "method": "listRules", - "group": "rules", - "weight": 1215, + "method": "listPolicies", + "group": "policies", "cookies": false, "type": "", - "demo": "proxy\/list-rules.md", + "demo": "project\/list-policies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", + "scope": [ + "policies.read", + "project.policies.read" + ], "platforms": [ "console", "server" @@ -53270,7 +52002,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\/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). Only supported methods are limit and offset", "required": false, "type": "array", "collectionFormat": "multi", @@ -53292,10 +52024,10 @@ ] } }, - "\/proxy\/rules\/api": { - "post": { - "summary": "Create API rule", - "operationId": "proxyCreateAPIRule", + "\/project\/policies\/deny-aliased-email": { + "patch": { + "summary": "Update deny aliased email policy", + "operationId": "projectUpdateDenyAliasedEmailPolicy", "consumes": [ "application\/json" ], @@ -53303,29 +52035,31 @@ "application\/json" ], "tags": [ - "proxy" + "project" ], - "description": "Create a new proxy rule for serving Appwrite's API on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "description": "Configures if aliased emails such as subaddresses and emails with suffixes are denied during new users sign-ups and email updates.", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Project", "schema": { - "$ref": "#\/definitions\/proxyRule" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "createAPIRule", - "group": "rules", - "weight": 1210, + "method": "updateDenyAliasedEmailPolicy", + "group": "policies", "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": "project\/update-deny-aliased-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53349,25 +52083,24 @@ "schema": { "type": "object", "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "default": null, - "x-example": null + "enabled": { + "type": "boolean", + "description": "Set whether or not to block aliased emails during signup and email updates.", + "x-example": false } }, "required": [ - "domain" + "enabled" ] } } ] } }, - "\/proxy\/rules\/function": { - "post": { - "summary": "Create function rule", - "operationId": "proxyCreateFunctionRule", + "\/project\/policies\/deny-disposable-email": { + "patch": { + "summary": "Update deny disposable email policy", + "operationId": "projectUpdateDenyDisposableEmailPolicy", "consumes": [ "application\/json" ], @@ -53375,29 +52108,31 @@ "application\/json" ], "tags": [ - "proxy" + "project" ], - "description": "Create a new proxy rule for executing Appwrite Function on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "description": "Configures if disposable emails from known temporary domains are denied during new users sign-ups and email updates.", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Project", "schema": { - "$ref": "#\/definitions\/proxyRule" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "createFunctionRule", - "group": "rules", - "weight": 1212, + "method": "updateDenyDisposableEmailPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "proxy\/create-function-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", + "demo": "project\/update-deny-disposable-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53421,38 +52156,24 @@ "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>" + "enabled": { + "type": "boolean", + "description": "Set whether or not to block disposable email addresses during signup and email updates.", + "x-example": false } }, "required": [ - "domain", - "functionId" + "enabled" ] } } ] } }, - "\/proxy\/rules\/redirect": { - "post": { - "summary": "Create Redirect rule", - "operationId": "proxyCreateRedirectRule", + "\/project\/policies\/deny-free-email": { + "patch": { + "summary": "Update deny free email policy", + "operationId": "projectUpdateDenyFreeEmailPolicy", "consumes": [ "application\/json" ], @@ -53460,29 +52181,31 @@ "application\/json" ], "tags": [ - "proxy" + "project" ], - "description": "Create a new proxy rule for to redirect from custom domain to another domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "description": "Configures if emails from free providers such as Gmail or Yahoo are denied during new users sign-ups and email updates.", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Project", "schema": { - "$ref": "#\/definitions\/proxyRule" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "createRedirectRule", - "group": "rules", - "weight": 1213, + "method": "updateDenyFreeEmailPolicy", + "group": "policies", "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": "project\/update-deny-free-email-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53506,76 +52229,24 @@ "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" - ] + "enabled": { + "type": "boolean", + "description": "Set whether or not to block free email addresses during signup and email updates.", + "x-example": false } }, "required": [ - "domain", - "url", - "statusCode", - "resourceId", - "resourceType" + "enabled" ] } } ] } }, - "\/proxy\/rules\/site": { - "post": { - "summary": "Create site rule", - "operationId": "proxyCreateSiteRule", + "\/project\/policies\/membership-privacy": { + "patch": { + "summary": "Update membership privacy policy", + "operationId": "projectUpdateMembershipPrivacyPolicy", "consumes": [ "application\/json" ], @@ -53583,29 +52254,31 @@ "application\/json" ], "tags": [ - "proxy" + "project" ], - "description": "Create a new proxy rule for serving Appwrite Site on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", + "description": "Updating this policy allows you to control if team members can see other members information. When enabled, all team members can see ID, name, email, phone number, and MFA status of other members..", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Project", "schema": { - "$ref": "#\/definitions\/proxyRule" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "createSiteRule", - "group": "rules", - "weight": 1211, + "method": "updateMembershipPrivacyPolicy", + "group": "policies", "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": "project\/update-membership-privacy-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53629,66 +52302,73 @@ "schema": { "type": "object", "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "default": null, - "x-example": null + "userId": { + "type": "boolean", + "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", + "x-example": false }, - "siteId": { - "type": "string", - "description": "ID of site to be executed.", - "default": null, - "x-example": "<SITE_ID>" + "userEmail": { + "type": "boolean", + "description": "Set to true if you want make user email visible to all team members, or false to hide it.", + "x-example": false }, - "branch": { - "type": "string", - "description": "Name of VCS branch to deploy changes automatically", - "default": "", - "x-example": "<BRANCH>" + "userPhone": { + "type": "boolean", + "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", + "x-example": false + }, + "userName": { + "type": "boolean", + "description": "Set to true if you want make user name visible to all team members, or false to hide it.", + "x-example": false + }, + "userMFA": { + "type": "boolean", + "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", + "x-example": false } - }, - "required": [ - "domain", - "siteId" - ] + } } } ] } }, - "\/proxy\/rules\/{ruleId}": { - "get": { - "summary": "Get rule", - "operationId": "proxyGetRule", - "consumes": [], + "\/project\/policies\/password-dictionary": { + "patch": { + "summary": "Update password dictionary policy", + "operationId": "projectUpdatePasswordDictionaryPolicy", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "proxy" + "project" ], - "description": "Get a proxy rule by its unique ID.", + "description": "Updating this policy allows you to control if new passwords are checked against most common passwords dictionary. When enabled, and user changes their password, password must not be contained in the dictionary.", "responses": { "200": { - "description": "Rule", + "description": "Project", "schema": { - "$ref": "#\/definitions\/proxyRule" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "getRule", - "group": "rules", - "weight": 1214, + "method": "updatePasswordDictionaryPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "proxy\/get-rule.md", + "demo": "project\/update-password-dictionary-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53707,43 +52387,61 @@ ], "parameters": [ { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "type": "string", - "x-example": "<RULE_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Toggle password dictionary policy. Set to true if you want password change to block passwords in the dictionary, or false to allow them. When changing this policy, existing passwords remain valid.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } } ] - }, - "delete": { - "summary": "Delete rule", - "operationId": "proxyDeleteRule", + } + }, + "\/project\/policies\/password-history": { + "patch": { + "summary": "Update password history policy", + "operationId": "projectUpdatePasswordHistoryPolicy", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "proxy" + "project" ], - "description": "Delete a proxy rule by its unique ID.", + "description": "Updates one of password strength policies. Based on total length configured, previous password hashes are stored, and users cannot choose a new password that is already stored in the passwird history list, when updating an user password, or setting new one through password recovery.\n\nKeep in mind, while password history policy is disabled, the history is not being stored. Enabling the policy will not have any history on existing users, and it will only start to collect and enforce the policy on password changes since the policy is enabled.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteRule", - "group": "rules", - "weight": 1216, + "method": "updatePasswordHistoryPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "proxy\/delete-rule.md", + "demo": "project\/update-password-history-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.write", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53762,20 +52460,31 @@ ], "parameters": [ { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "type": "string", - "x-example": "<RULE_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Set the password history length per user. Value can be between 1 and 5000, or null to disable the limit.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "total" + ] + } } ] } }, - "\/proxy\/rules\/{ruleId}\/status": { + "\/project\/policies\/password-personal-data": { "patch": { - "summary": "Update rule status", - "operationId": "proxyUpdateRuleStatus", + "summary": "Update password personal data policy", + "operationId": "projectUpdatePasswordPersonalDataPolicy", "consumes": [ "application\/json" ], @@ -53783,29 +52492,31 @@ "application\/json" ], "tags": [ - "proxy" + "project" ], - "description": "If not succeeded yet, retry verification process of a proxy rule domain. This endpoint triggers domain verification by checking DNS records. If verification is successful, a TLS certificate will be automatically provisioned for the domain asynchronously in the background.", + "description": "Updating this policy allows you to control if password strength is checked against personal data. When enabled, and user sets or changes their password, the password must not contain user ID, name, email or phone number.", "responses": { "200": { - "description": "Rule", + "description": "Project", "schema": { - "$ref": "#\/definitions\/proxyRule" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRuleStatus", - "group": "rules", - "weight": 1217, + "method": "updatePasswordPersonalDataPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "proxy\/update-rule-status.md", + "demo": "project\/update-password-personal-data-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.write", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" @@ -53824,56 +52535,67 @@ ], "parameters": [ { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "type": "string", - "x-example": "<RULE_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Toggle password personal data policy. Set to true if you want to block passwords including user's personal data, or false to allow it. When changing this policy, existing passwords remain valid.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } } ] } }, - "\/reports": { - "get": { - "summary": "List reports", - "operationId": "advisorListReports", - "consumes": [], + "\/project\/policies\/session-alert": { + "patch": { + "summary": "Update session alert policy", + "operationId": "projectUpdateSessionAlertPolicy", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "advisor" + "project" ], - "description": "Get a list of all the project's analyzer reports. You can use the query params to filter your results.\n", + "description": "Updating this policy allows you to control if email alert is sent upon session creation. When enabled, and user signs into their account, they will be sent an email notification. There is an exception, the first session after a new sign up does not trigger an alert, even if the policy is enabled.", "responses": { "200": { - "description": "Reports List", + "description": "Project", "schema": { - "$ref": "#\/definitions\/reportList" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "listReports", - "group": "reports", - "weight": 695, + "method": "updateSessionAlertPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "advisor\/list-reports.md", + "demo": "project\/update-session-alert-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-reports.md", "auth": { "Project": [] } @@ -53881,76 +52603,72 @@ "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: appId, type, targetType, target, analyzedAt", - "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": { + "enabled": { + "type": "boolean", + "description": "Toggle session alert policy. Set to true if you want users to receive email notifications when a sessions are created for their users, or false to not send email alerts.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } } ] } }, - "\/reports\/{reportId}": { - "get": { - "summary": "Get report", - "operationId": "advisorGetReport", - "consumes": [], + "\/project\/policies\/session-duration": { + "patch": { + "summary": "Update session duration policy", + "operationId": "projectUpdateSessionDurationPolicy", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "advisor" + "project" ], - "description": "Get an analyzer report by its unique ID. The response includes the report's metadata and the nested insights it produced.\n", + "description": "Update maximum duration how long sessions created within a project should stay active for.", "responses": { "200": { - "description": "Report", + "description": "Project", "schema": { - "$ref": "#\/definitions\/report" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "getReport", - "group": "reports", - "weight": 694, + "method": "updateSessionDurationPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "advisor\/get-report.md", + "demo": "project\/update-session-duration-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "reports.read", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-report.md", "auth": { "Project": [] } @@ -53958,57 +52676,73 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "reportId", - "description": "Report ID.", - "required": true, - "type": "string", - "x-example": "<REPORT_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "duration": { + "type": "integer", + "description": "Maximum session length in seconds. Minium allowed value is 5 second, and maximum is 1 year, which is 31536000 seconds.", + "x-example": 5, + "format": "int32" + } + }, + "required": [ + "duration" + ] + } } ] - }, - "delete": { - "summary": "Delete report", - "operationId": "advisorDeleteReport", + } + }, + "\/project\/policies\/session-invalidation": { + "patch": { + "summary": "Update session invalidation policy", + "operationId": "projectUpdateSessionInvalidationPolicy", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "advisor" + "project" ], - "description": "Delete an analyzer report by its unique ID. Nested insights and CTA metadata are removed asynchronously by the deletes worker.\n", + "description": "Updating this policy allows you to control if existing sessions should be invalidated when a password of a user is changed. When enabled, and user changes their password, they will be logged out of all their devices.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteReport", - "group": "reports", - "weight": 696, + "method": "updateSessionInvalidationPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "advisor\/delete-report.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "projectId:{projectId},userId:{userId}", - "scope": "reports.write", + "demo": "project\/update-session-invalidation-policy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/delete-report.md", "auth": { "Project": [] } @@ -54021,56 +52755,67 @@ ], "parameters": [ { - "name": "reportId", - "description": "Report ID.", - "required": true, - "type": "string", - "x-example": "<REPORT_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Toggle session invalidation policy. Set to true if you want password change to invalidate all sessions of an user, or false to keep sessions active.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } } ] } }, - "\/reports\/{reportId}\/insights": { - "get": { - "summary": "List insights", - "operationId": "advisorListInsights", - "consumes": [], + "\/project\/policies\/session-limit": { + "patch": { + "summary": "Update session limit policy", + "operationId": "projectUpdateSessionLimitPolicy", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "advisor" + "project" ], - "description": "List the insights produced under a single analyzer report. You can use the query params to filter your results further.\n", + "description": "Update the maximum number of sessions allowed per user. When the limit is hit, the oldest session will be deleted to make room for new one.", "responses": { "200": { - "description": "Insights List", + "description": "Project", "schema": { - "$ref": "#\/definitions\/insightList" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "listInsights", - "group": "insights", - "weight": 698, + "method": "updateSessionLimitPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "advisor\/list-insights.md", + "demo": "project\/update-session-limit-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-insights.md", "auth": { "Project": [] } @@ -54078,84 +52823,74 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "reportId", - "description": "Parent report ID.", - "required": true, - "type": "string", - "x-example": "<REPORT_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: type, severity, status, resourceType, resourceId, parentResourceType, parentResourceId, analyzedAt, dismissedAt, dismissedBy", - "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": { + "total": { + "type": "integer", + "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 5000, or null to disable the limit.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "total" + ] + } } ] } }, - "\/reports\/{reportId}\/insights\/{insightId}": { - "get": { - "summary": "Get insight", - "operationId": "advisorGetInsight", - "consumes": [], + "\/project\/policies\/user-limit": { + "patch": { + "summary": "Update user limit policy", + "operationId": "projectUpdateUserLimitPolicy", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "advisor" + "project" ], - "description": "Get an insight by its unique ID, scoped to its parent report.\n", + "description": "Update the maximum number of users in the project. When the limit is hit or amount of existing users already exceeded the limit, all users remain active, but new user sign up will be prohibited.", "responses": { "200": { - "description": "Insight", + "description": "Project", "schema": { - "$ref": "#\/definitions\/insight" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "getInsight", - "group": "insights", - "weight": 697, + "method": "updateUserLimitPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "advisor\/get-insight.md", + "demo": "project\/update-user-limit-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "insights.read", + "scope": [ + "policies.write", + "project.policies.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-insight.md", "auth": { "Project": [] } @@ -54163,63 +52898,108 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "reportId", - "description": "Parent report ID.", - "required": true, - "type": "string", - "x-example": "<REPORT_ID>", - "in": "path" - }, - { - "name": "insightId", - "description": "Insight ID.", - "required": true, - "type": "string", - "x-example": "<INSIGHT_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Set the maximum number of users allowed in the project. Value can be between 1 and 5000, or null to disable the limit.", + "x-example": 1, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "total" + ] + } } ] } }, - "\/sites": { + "\/project\/policies\/{policyId}": { "get": { - "summary": "List sites", - "operationId": "sitesList", + "summary": "Get project policy", + "operationId": "projectGetPolicy", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "project" ], - "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "description": "Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy.", "responses": { "200": { - "description": "Sites List", + "description": "Policy Password Dictionary, or Policy Password History, or Policy Password Personal Data, or Policy Session Alert, or Policy Session Duration, or Policy Session Invalidation, or Policy Session Limit, or Policy User Limit, or Policy Membership Privacy", "schema": { - "$ref": "#\/definitions\/siteList" + "x-oneOf": [ + { + "$ref": "#\/definitions\/policyPasswordDictionary" + }, + { + "$ref": "#\/definitions\/policyPasswordHistory" + }, + { + "$ref": "#\/definitions\/policyPasswordPersonalData" + }, + { + "$ref": "#\/definitions\/policySessionAlert" + }, + { + "$ref": "#\/definitions\/policySessionDuration" + }, + { + "$ref": "#\/definitions\/policySessionInvalidation" + }, + { + "$ref": "#\/definitions\/policySessionLimit" + }, + { + "$ref": "#\/definitions\/policyUserLimit" + }, + { + "$ref": "#\/definitions\/policyMembershipPrivacy" + } + ], + "x-discriminator": { + "propertyName": "$id", + "mapping": { + "password-dictionary": "#\/definitions\/policyPasswordDictionary", + "password-history": "#\/definitions\/policyPasswordHistory", + "password-personal-data": "#\/definitions\/policyPasswordPersonalData", + "session-alert": "#\/definitions\/policySessionAlert", + "session-duration": "#\/definitions\/policySessionDuration", + "session-invalidation": "#\/definitions\/policySessionInvalidation", + "session-limit": "#\/definitions\/policySessionLimit", + "user-limit": "#\/definitions\/policyUserLimit", + "membership-privacy": "#\/definitions\/policyMembershipPrivacy" + } + } } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "sites", - "weight": 479, + "method": "getPolicy", + "group": "policies", "cookies": false, "type": "", - "demo": "sites\/list.md", + "demo": "project\/get-policy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "policies.read", + "project.policies.read" + ], "platforms": [ "console", "server" @@ -54238,40 +53018,32 @@ ], "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": "policyId", + "description": "Policy ID. Can be one of: password-dictionary, password-history, password-personal-data, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy.", + "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": "password-dictionary", + "enum": [ + "password-dictionary", + "password-history", + "password-personal-data", + "session-alert", + "session-duration", + "session-invalidation", + "session-limit", + "user-limit", + "membership-privacy" + ], + "x-enum-name": "ProjectPolicyId", + "in": "path" } ] - }, - "post": { - "summary": "Create site", - "operationId": "sitesCreate", + } + }, + "\/project\/protocols\/{protocolId}": { + "patch": { + "summary": "Update project protocol", + "operationId": "projectUpdateProtocol", "consumes": [ "application\/json" ], @@ -54279,29 +53051,28 @@ "application\/json" ], "tags": [ - "sites" + "project" ], - "description": "Create a new site.", + "description": "Update properties of a specific protocol. Use this endpoint to enable or disable a protocol in your project. ", "responses": { - "201": { - "description": "Site", + "200": { + "description": "Project", "schema": { - "$ref": "#\/definitions\/site" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "sites", - "weight": 924, + "method": "updateProtocol", + "group": null, "cookies": false, "type": "", - "demo": "sites\/create.md", + "demo": "project\/update-protocol.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -54319,305 +53090,73 @@ } ], "parameters": [ + { + "name": "protocolId", + "description": "Protocol name. Can be one of: rest, graphql, websocket", + "required": true, + "type": "string", + "x-example": "rest", + "enum": [ + "rest", + "graphql", + "websocket" + ], + "x-enum-name": "ProjectProtocolId", + "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": { - "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>" - }, - "startCommand": { - "type": "string", - "description": "Custom start command. Leave empty to use default.", - "default": "", - "x-example": "<START_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", - "dart-3.11", - "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", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41" - ], - "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, + "description": "Protocol status.", "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site code in the linked repo.", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "buildSpecification": { - "type": "string", - "description": "Build specification for the site deployments.", - "default": {}, - "x-example": null - }, - "runtimeSpecification": { - "type": "string", - "description": "Runtime specification for the SSR executions.", - "default": {}, - "x-example": null - }, - "deploymentRetention": { - "type": "integer", - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "default": 0, - "x-example": 0, - "format": "int32" } }, "required": [ - "siteId", - "name", - "framework", - "buildRuntime" + "enabled" ] } } ] } }, - "\/sites\/frameworks": { - "get": { - "summary": "List frameworks", - "operationId": "sitesListFrameworks", - "consumes": [], + "\/project\/services\/{serviceId}": { + "patch": { + "summary": "Update project service", + "operationId": "projectUpdateService", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "sites" + "project" ], - "description": "Get a list of all frameworks that are currently available on the server instance.", + "description": "Update properties of a specific service. Use this endpoint to enable or disable a service in your project. ", "responses": { "200": { - "description": "Frameworks List", + "description": "Project", "schema": { - "$ref": "#\/definitions\/frameworkList" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "listFrameworks", - "group": "frameworks", - "weight": 482, + "method": "updateService", + "group": null, "cookies": false, "type": "", - "demo": "sites\/list-frameworks.md", + "demo": "project\/update-service.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "project.write", "platforms": [ "console", "server" @@ -54633,219 +53172,93 @@ "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": 505, - "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": 501, - "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": "serviceId", + "description": "Service name. Can be one of: account, avatars, databases, tablesdb, locale, health, project, storage, teams, users, vcs, sites, functions, proxy, graphql, migrations, messaging, advisor", + "required": true, + "type": "string", + "x-example": "account", + "enum": [ + "account", + "avatars", + "databases", + "tablesdb", + "locale", + "health", + "project", + "storage", + "teams", + "users", + "vcs", + "sites", + "functions", + "proxy", + "graphql", + "migrations", + "messaging", + "advisor" + ], + "x-enum-name": "ProjectServiceId", + "in": "path" }, { - "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": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Service status.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } } ] } }, - "\/sites\/templates\/{templateId}": { - "get": { - "summary": "Get site template", - "operationId": "sitesGetTemplate", - "consumes": [], + "\/project\/smtp": { + "patch": { + "summary": "Update project SMTP configuration", + "operationId": "projectUpdateSMTP", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "sites" + "project" ], - "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "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": "Template Site", + "description": "Project", "schema": { - "$ref": "#\/definitions\/templateSite" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "getTemplate", - "group": "templates", - "weight": 502, + "method": "updateSMTP", + "group": "smtp", "cookies": false, "type": "", - "demo": "sites\/get-template.md", + "demo": "project\/update-smtp.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "project.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -54855,55 +53268,122 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "templateId", - "description": "Template ID.", - "required": true, - "type": "string", - "x-example": "<TEMPLATE_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "host": { + "type": "string", + "description": "SMTP server hostname (domain)", + "x-example": null, + "x-nullable": true + }, + "port": { + "type": "integer", + "description": "SMTP server port", + "x-example": null, + "format": "int32", + "x-nullable": true + }, + "username": { + "type": "string", + "description": "SMTP server username. Pass an empty string to clear a previously set value.", + "x-example": "<USERNAME>", + "x-nullable": true + }, + "password": { + "type": "string", + "description": "SMTP server password. Pass an empty string to clear a previously set value. This property is stored securely and cannot be read in future (write-only).", + "x-example": "<PASSWORD>", + "x-nullable": true + }, + "senderEmail": { + "type": "string", + "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "senderName": { + "type": "string", + "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", + "x-example": "<SENDER_NAME>", + "x-nullable": true + }, + "replyToEmail": { + "type": "string", + "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "replyToName": { + "type": "string", + "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", + "x-example": "<REPLY_TO_NAME>", + "x-nullable": true + }, + "secure": { + "type": "string", + "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", + "x-example": "tls", + "enum": [ + "tls", + "ssl" + ], + "x-enum-name": "ProjectSMTPSecure", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", + "x-example": false, + "x-nullable": true + } + } + } } ] } }, - "\/sites\/usage": { - "get": { - "summary": "Get sites usage", - "operationId": "sitesListUsage", - "consumes": [], - "produces": [ + "\/project\/smtp\/tests": { + "post": { + "summary": "Create project SMTP test", + "operationId": "projectCreateSMTPTest", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "sites" + "project" ], - "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": "Send a test email to verify SMTP configuration. ", "responses": { - "200": { - "description": "UsageSites", - "schema": { - "$ref": "#\/definitions\/usageSites" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listUsage", - "group": null, - "weight": 503, + "method": "createSMTPTest", + "group": "smtp", "cookies": false, "type": "", - "demo": "sites\/list-usage.md", + "demo": "project\/create-smtp-test.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "project.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -54913,65 +53393,65 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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" + "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.", + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "emails" + ] + } } ] } }, - "\/sites\/{siteId}": { + "\/project\/templates\/email": { "get": { - "summary": "Get site", - "operationId": "sitesGet", + "summary": "List project email templates", + "operationId": "projectListEmailTemplates", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "project" ], - "description": "Get a site by its unique ID.", + "description": "Get a list of all custom email templates configured for the project. This endpoint returns an array of all configured email templates and their locales.", "responses": { "200": { - "description": "Site", + "description": "Email Templates List", "schema": { - "$ref": "#\/definitions\/site" + "$ref": "#\/definitions\/emailTemplateList" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "sites", - "weight": 478, + "method": "listEmailTemplates", + "group": "templates", "cookies": false, "type": "", - "demo": "sites\/get.md", + "demo": "project\/list-email-templates.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "templates.read", "platforms": [ "console", "server" @@ -54990,18 +53470,31 @@ ], "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). 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" } ] }, - "put": { - "summary": "Update site", - "operationId": "sitesUpdate", + "patch": { + "summary": "Update project email template", + "operationId": "projectUpdateEmailTemplate", "consumes": [ "application\/json" ], @@ -55009,29 +53502,28 @@ "application\/json" ], "tags": [ - "sites" + "project" ], - "description": "Update site by its unique ID.", + "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": "Site", + "description": "EmailTemplate", "schema": { - "$ref": "#\/definitions\/site" + "$ref": "#\/definitions\/emailTemplate" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "sites", - "weight": 925, + "method": "updateEmailTemplate", + "group": "templates", "cookies": false, "type": "", - "demo": "sites\/update.md", + "demo": "project\/update-email-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "templates.write", "platforms": [ "console", "server" @@ -55049,440 +53541,244 @@ } ], "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": { + "templateId": { "type": "string", - "description": "Sites framework.", - "default": null, - "x-example": "analog", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", + "x-example": "verification", "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" ], - "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-enum-name": "ProjectEmailTemplateId" }, - "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>" - }, - "startCommand": { - "type": "string", - "description": "Custom start command. Leave empty to use default.", - "default": "", - "x-example": "<START_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", - "dart-3.11", - "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", - "rust-1.83", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38", - "flutter-3.41" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "adapter": { + "locale": { "type": "string", - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "default": "", - "x-example": "static", + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", + "x-example": "af", "enum": [ - "static", - "ssr" + "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": 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>" + "x-enum-name": "ProjectEmailTemplateLocale" }, - "providerRepositoryId": { + "subject": { "type": "string", - "description": "Repository ID of the repo linked to the site.", - "default": "", - "x-example": "<PROVIDER_REPOSITORY_ID>" + "description": "Subject of the email template. Can be up to 255 characters.", + "x-example": "<SUBJECT>", + "x-nullable": true }, - "providerBranch": { + "message": { "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 + "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", + "x-example": "<MESSAGE>", + "x-nullable": true }, - "providerRootDirectory": { + "senderName": { "type": "string", - "description": "Path to site code in the linked repo.", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" + "description": "Name of the email sender.", + "x-example": "<SENDER_NAME>", + "x-nullable": true }, - "buildSpecification": { + "senderEmail": { "type": "string", - "description": "Build specification for the site deployments.", - "default": {}, - "x-example": null + "description": "Email of the sender. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true }, - "runtimeSpecification": { + "replyToEmail": { "type": "string", - "description": "Runtime specification for the SSR executions.", - "default": {}, - "x-example": null + "description": "Reply to email. Pass an empty string to clear a previously set value.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true }, - "deploymentRetention": { - "type": "integer", - "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", - "default": 0, - "x-example": 0, - "format": "int32" - } - }, - "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": 481, - "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": 488, - "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": { + "replyToName": { "type": "string", - "description": "Deployment ID.", - "default": null, - "x-example": "<DEPLOYMENT_ID>" + "description": "Reply to name.", + "x-example": "<REPLY_TO_NAME>", + "x-nullable": true } }, "required": [ - "deploymentId" + "templateId" ] } } ] } }, - "\/sites\/{siteId}\/deployments": { + "\/project\/templates\/email\/{templateId}": { "get": { - "summary": "List deployments", - "operationId": "sitesListDeployments", + "summary": "Get project email template", + "operationId": "projectGetEmailTemplate", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "project" ], - "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "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": "Deployments List", + "description": "EmailTemplate", "schema": { - "$ref": "#\/definitions\/deploymentList" + "$ref": "#\/definitions\/emailTemplate" } } }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 487, + "method": "getEmailTemplate", + "group": "templates", "cookies": false, "type": "", - "demo": "sites\/list-deployments.md", + "demo": "project\/get-email-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "templates.read", "platforms": [ "console", "server" @@ -55501,180 +53797,281 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "templateId", + "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "ProjectEmailTemplateId", "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.", + "name": "locale", + "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", "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, + "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": "ProjectEmailTemplateLocale", "in": "query" } ] - }, - "post": { - "summary": "Create deployment", - "operationId": "sitesCreateDeployment", - "consumes": [ - "multipart\/form-data" - ], + } + }, + "\/project\/usage": { + "get": { + "summary": "Get project usage stats", + "operationId": "projectGetUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "project" ], - "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": "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": { - "202": { - "description": "Deployment", + "200": { + "description": "Project", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/usageProject" } } }, "deprecated": false, "x-appwrite": { - "method": "createDeployment", - "group": "deployments", - "weight": 483, + "method": "getUsage", + "group": null, "cookies": false, - "type": "upload", - "demo": "sites\/create-deployment.md", + "type": "", + "demo": "project\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "projects.read", "platforms": [ - "console", - "server" + "console" ], - "packaging": true, + "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "startDate", + "description": "Starting date for the usage", "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" + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00", + "in": "query" }, { - "name": "buildCommand", - "description": "Build Commands.", - "required": false, + "name": "endDate", + "description": "End date for the usage", + "required": true, "type": "string", - "x-example": "<BUILD_COMMAND>", - "in": "formData" + "format": "datetime", + "x-example": "2020-10-15T06:38:00.000+00:00", + "in": "query" }, { - "name": "outputDirectory", - "description": "Output Directory.", + "name": "period", + "description": "Period used", "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" + "x-example": "1h", + "enum": [ + "1h", + "1d" + ], + "x-enum-name": "ProjectUsageRange", + "default": "1d", + "in": "query" } ] } }, - "\/sites\/{siteId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "sitesCreateDuplicateDeployment", - "consumes": [ - "application\/json" - ], + "\/project\/variables": { + "get": { + "summary": "List project variables", + "operationId": "projectListVariables", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "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.", + "description": "Get a list of all project environment variables.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "Variables List", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/variableList" } } }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", - "weight": 491, + "method": "listVariables", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/create-duplicate-deployment.md", + "demo": "project\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "project.read", "platforms": [ "console", "server" @@ -55693,38 +54090,31 @@ ], "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: key, resourceType, resourceId, secret", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "default": null, - "x-example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } + "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}\/deployments\/template": { + }, "post": { - "summary": "Create template deployment", - "operationId": "sitesCreateTemplateDeployment", + "summary": "Create project variable", + "operationId": "projectCreateVariable", "consumes": [ "application\/json" ], @@ -55732,29 +54122,28 @@ "application\/json" ], "tags": [ - "sites" + "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.", + "description": "Create a new project environment variable. These variables can be accessed by all functions and sites in the project.", "responses": { - "202": { - "description": "Deployment", + "201": { + "description": "Variable", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 484, + "method": "createVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/create-template-deployment.md", + "demo": "project\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -55772,110 +54161,75 @@ } ], "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": { + "variableId": { "type": "string", - "description": "Path to site code in the template repo.", - "default": null, - "x-example": "<ROOT_DIRECTORY>" + "description": "Variable 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": "<VARIABLE_ID>" }, - "type": { + "key": { "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": [] + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" }, - "reference": { + "value": { "type": "string", - "description": "Reference value, can be a commit hash, branch name, or release tag", - "default": null, - "x-example": "<REFERENCE>" + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>" }, - "activate": { + "secret": { "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "default": false, + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "default": true, "x-example": false } }, "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" + "variableId", + "key", + "value" ] } } ] } }, - "\/sites\/{siteId}\/deployments\/vcs": { - "post": { - "summary": "Create VCS deployment", - "operationId": "sitesCreateVcsDeployment", - "consumes": [ - "application\/json" - ], + "\/project\/variables\/{variableId}": { + "get": { + "summary": "Get project variable", + "operationId": "projectGetVariable", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "project" ], - "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 variable by its unique ID. ", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "Variable", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 485, + "method": "getVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/create-vcs-deployment.md", + "demo": "project\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "project.read", "platforms": [ "console", "server" @@ -55894,86 +54248,47 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<VARIABLE_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": [], + }, + "put": { + "summary": "Update project variable", + "operationId": "projectUpdateVariable", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "sites" + "project" ], - "description": "Get a site deployment by its unique ID.", + "description": "Update variable by its unique ID.", "responses": { "200": { - "description": "Deployment", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 486, + "method": "updateVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/get-deployment.md", + "demo": "project\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "project.write", "platforms": [ "console", "server" @@ -55992,34 +54307,53 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<VARIABLE_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": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>", + "x-nullable": true + }, + "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 projects can read them during build and runtime.", + "x-example": false, + "x-nullable": true + } + } + } } ] }, "delete": { - "summary": "Delete deployment", - "operationId": "sitesDeleteDeployment", + "summary": "Delete project variable", + "operationId": "projectDeleteVariable", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "sites" + "project" ], - "description": "Delete a site deployment by its unique ID.", + "description": "Delete a variable by its unique ID. ", "responses": { "204": { "description": "No content" @@ -56027,16 +54361,15 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 489, + "method": "deleteVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "sites\/delete-deployment.md", + "demo": "project\/delete-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "project.write", "platforms": [ "console", "server" @@ -56055,145 +54388,106 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<VARIABLE_ID>", "in": "path" } ] } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "sitesGetDeploymentDownload", - "consumes": [], + "\/projects\/{projectId}\/console-access": { + "patch": { + "summary": "Record console access to a project", + "operationId": "projectsUpdateConsoleAccess", + "consumes": [ + "application\/json" + ], "produces": [ - "*\/*" + "application\/json" ], "tags": [ - "sites" + "projects" ], - "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": "Record console access to a project. This endpoint updates the last accessed timestamp for the project to track console activity.\n", "responses": { - "200": { - "description": "File", - "schema": { - "type": "file" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 490, + "method": "updateConsoleAccess", + "group": null, "cookies": false, - "type": "location", - "demo": "sites\/get-deployment-download.md", + "type": "", + "demo": "projects\/update-console-access.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "projects.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-console-access.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "projectId", + "description": "Project ID", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<PROJECT_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" - ], + "\/projects\/{projectId}\/dev-keys": { + "get": { + "summary": "List dev keys", + "operationId": "projectsListDevKeys", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "projects" ], - "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 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": "Deployment", + "description": "Dev Keys List", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/devKeyList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 492, + "method": "listDevKeys", + "group": "devKeys", "cookies": false, "type": "", - "demo": "sites\/update-deployment-status.md", + "demo": "projects\/list-dev-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "devKeys.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -56203,65 +54497,66 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<PROJECT_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "type": "string", - "x-example": "<DEPLOYMENT_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" } ] - } - }, - "\/sites\/{siteId}\/logs": { - "get": { - "summary": "List logs", - "operationId": "sitesListLogs", - "consumes": [], + }, + "post": { + "summary": "Create dev key", + "operationId": "projectsCreateDevKey", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "sites" + "projects" ], - "description": "Get a list of all site logs. You can use the query params to filter your results.", + "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": { - "200": { - "description": "Executions List", + "201": { + "description": "DevKey", "schema": { - "$ref": "#\/definitions\/executionList" + "$ref": "#\/definitions\/devKey" } } }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 494, + "method": "createDevKey", + "group": "devKeys", "cookies": false, "type": "", - "demo": "sites\/list-logs.md", + "demo": "projects\/create-dev-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": "devKeys.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -56271,78 +54566,78 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "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: 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": { + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + } + }, + "required": [ + "name", + "expire" + ] + } } ] } }, - "\/sites\/{siteId}\/logs\/{logId}": { + "\/projects\/{projectId}\/dev-keys\/{keyId}": { "get": { - "summary": "Get log", - "operationId": "sitesGetLog", + "summary": "Get dev key", + "operationId": "projectsGetDevKey", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "projects" ], - "description": "Get a site request log by its unique ID.", + "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": "Execution", + "description": "DevKey", "schema": { - "$ref": "#\/definitions\/execution" + "$ref": "#\/definitions\/devKey" } } }, "deprecated": false, "x-appwrite": { - "method": "getLog", - "group": "logs", - "weight": 493, + "method": "getDevKey", + "group": "devKeys", "cookies": false, "type": "", - "demo": "sites\/get-log.md", + "demo": "projects\/get-dev-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": "devKeys.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -56352,32 +54647,31 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<PROJECT_ID>", "in": "path" }, { - "name": "logId", - "description": "Log ID.", + "name": "keyId", + "description": "Key unique ID.", "required": true, "type": "string", - "x-example": "<LOG_ID>", + "x-example": "<KEY_ID>", "in": "path" } ] }, - "delete": { - "summary": "Delete log", - "operationId": "sitesDeleteLog", + "put": { + "summary": "Update dev key", + "operationId": "projectsUpdateDevKey", "consumes": [ "application\/json" ], @@ -56385,29 +54679,30 @@ "application\/json" ], "tags": [ - "sites" + "projects" ], - "description": "Delete a site log by its unique ID.", + "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": { - "204": { - "description": "No content" + "200": { + "description": "DevKey", + "schema": { + "$ref": "#\/definitions\/devKey" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteLog", - "group": "logs", - "weight": 495, + "method": "updateDevKey", + "group": "devKeys", "cookies": false, "type": "", - "demo": "sites\/delete-log.md", + "demo": "projects\/update-dev-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.write", + "scope": "devKeys.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -56417,62 +54712,79 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<PROJECT_ID>", "in": "path" }, { - "name": "logId", - "description": "Log ID.", + "name": "keyId", + "description": "Key unique ID.", "required": true, "type": "string", - "x-example": "<LOG_ID>", + "x-example": "<KEY_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime" + } + }, + "required": [ + "name", + "expire" + ] + } } ] - } - }, - "\/sites\/{siteId}\/usage": { - "get": { - "summary": "Get site usage", - "operationId": "sitesGetUsage", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete dev key", + "operationId": "projectsDeleteDevKey", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "sites" + "projects" ], - "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 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": { - "200": { - "description": "UsageSite", - "schema": { - "$ref": "#\/definitions\/usageSite" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 504, + "method": "deleteDevKey", + "group": "devKeys", "cookies": false, "type": "", - "demo": "sites\/get-usage.md", + "demo": "projects\/delete-dev-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "devKeys.write", "platforms": [ "console" ], @@ -56489,96 +54801,82 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<PROJECT_ID>", "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, + "name": "keyId", + "description": "Key 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": "<KEY_ID>", + "in": "path" } ] } }, - "\/sites\/{siteId}\/variables": { + "\/projects\/{projectId}\/schedules": { "get": { - "summary": "List variables", - "operationId": "sitesListVariables", + "summary": "List schedules", + "operationId": "projectsListSchedules", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "projects" ], - "description": "Get a list of all variables of a specific site.", + "description": "Get a list of all the project's schedules. You can use the query params to filter your results.", "responses": { "200": { - "description": "Variables List", + "description": "Schedules List", "schema": { - "$ref": "#\/definitions\/variableList" + "$ref": "#\/definitions\/scheduleList" } } }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 498, + "method": "listSchedules", + "group": "schedules", "cookies": false, "type": "", - "demo": "sites\/list-variables.md", + "demo": "projects\/list-schedules.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "schedules.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-schedules.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "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: key, resourceType, resourceId, secret", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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", @@ -56600,8 +54898,8 @@ ] }, "post": { - "summary": "Create variable", - "operationId": "sitesCreateVariable", + "summary": "Create schedule", + "operationId": "projectsCreateSchedule", "consumes": [ "application\/json" ], @@ -56609,52 +54907,50 @@ "application\/json" ], "tags": [ - "sites" + "projects" ], - "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 schedule for a resource.", "responses": { "201": { - "description": "Variable", + "description": "Schedule", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/schedule" } } }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 926, + "method": "createSchedule", + "group": "schedules", "cookies": false, "type": "", - "demo": "sites\/create-variable.md", + "demo": "projects\/create-schedule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "schedules.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-schedule.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<PROJECT_ID>", "in": "path" }, { @@ -56663,111 +54959,121 @@ "schema": { "type": "object", "properties": { - "variableId": { + "resourceType": { "type": "string", - "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<VARIABLE_ID>" + "description": "The resource type for the schedule. Possible values: function, execution, message, backup.", + "x-example": "function", + "enum": [ + "function", + "execution", + "message", + "backup" + ], + "x-enum-name": "ScheduleResourceType" }, - "key": { + "resourceId": { "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>" + "description": "The resource ID to associate with this schedule.", + "x-example": "<RESOURCE_ID>" }, - "value": { + "schedule": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "default": null, - "x-example": "<VALUE>" + "description": "Schedule CRON expression.", + "x-example": null }, - "secret": { + "active": { "type": "boolean", - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "default": true, + "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": [ - "variableId", - "key", - "value" + "resourceType", + "resourceId", + "schedule" ] } } ] } }, - "\/sites\/{siteId}\/variables\/{variableId}": { + "\/projects\/{projectId}\/schedules\/{scheduleId}": { "get": { - "summary": "Get variable", - "operationId": "sitesGetVariable", + "summary": "Get schedule", + "operationId": "projectsGetSchedule", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "projects" ], - "description": "Get a variable by its unique ID.", + "description": "Get a schedule by its unique ID.", "responses": { "200": { - "description": "Variable", + "description": "Schedule", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/schedule" } } }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 497, + "method": "getSchedule", + "group": "schedules", "cookies": false, "type": "", - "demo": "sites\/get-variable.md", + "demo": "projects\/get-schedule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "schedules.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-schedule.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<PROJECT_ID>", "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "scheduleId", + "description": "Schedule ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<SCHEDULE_ID>", "in": "path" } ] - }, - "put": { - "summary": "Update variable", - "operationId": "sitesUpdateVariable", + } + }, + "\/projects\/{projectId}\/status": { + "patch": { + "summary": "Update the status of a project", + "operationId": "projectsUpdateStatus", "consumes": [ "application\/json" ], @@ -56775,60 +55081,47 @@ "application\/json" ], "tags": [ - "sites" + "projects" ], - "description": "Update variable by its unique ID.", + "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": { - "200": { - "description": "Variable", - "schema": { - "$ref": "#\/definitions\/variable" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 499, + "method": "updateStatus", + "group": null, "cookies": false, "type": "", - "demo": "sites\/update-variable.md", - "rate-limit": 0, + "demo": "projects\/update-status.md", + "rate-limit": 10, "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "rate-key": "ip:{ip},userId:{userId}", + "scope": "projects.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-status.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "projectId", + "description": "Project ID", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<PROJECT_ID>", "in": "path" }, { @@ -56837,135 +55130,138 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>", - "x-nullable": true - }, - "value": { + "status": { "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 sites can read them during build and runtime.", - "default": null, - "x-example": false, - "x-nullable": true + "description": "New status for the project", + "x-example": "active", + "enum": [ + "active" + ], + "x-enum-name": "ProjectStatus" } - } + }, + "required": [ + "status" + ] } } ] - }, - "delete": { - "summary": "Delete variable", - "operationId": "sitesDeleteVariable", + } + }, + "\/projects\/{projectId}\/team": { + "patch": { + "summary": "Update project team", + "operationId": "projectsUpdateTeam", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "sites" + "projects" ], - "description": "Delete a variable by its unique ID.", + "description": "Update the team ID of a project allowing for it to be transferred to another team.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 500, + "method": "updateTeam", + "group": "projects", "cookies": false, "type": "", - "demo": "sites\/delete-variable.md", + "demo": "projects\/update-team.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "projects.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-team.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<PROJECT_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": "Team ID of the team to transfer project to.", + "x-example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } } ] } }, - "\/storage\/buckets": { + "\/proxy\/rules": { "get": { - "summary": "List buckets", - "operationId": "storageListBuckets", + "summary": "List rules", + "operationId": "proxyListRules", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "storage" + "proxy" ], - "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 the proxy rules. You can use the query params to filter your results.", "responses": { "200": { - "description": "Buckets List", + "description": "Rule List", "schema": { - "$ref": "#\/definitions\/bucketList" + "$ref": "#\/definitions\/proxyRuleList" } } }, "deprecated": false, "x-appwrite": { - "method": "listBuckets", - "group": "buckets", - "weight": 550, + "method": "listRules", + "group": "rules", "cookies": false, "type": "", - "demo": "storage\/list-buckets.md", + "demo": "proxy\/list-rules.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", + "scope": "rules.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", "auth": { "Project": [] } @@ -56979,7 +55275,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: 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\/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", @@ -56989,15 +55285,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.", @@ -57008,10 +55295,12 @@ "in": "query" } ] - }, + } + }, + "\/proxy\/rules\/api": { "post": { - "summary": "Create bucket", - "operationId": "storageCreateBucket", + "summary": "Create API rule", + "operationId": "proxyCreateAPIRule", "consumes": [ "application\/json" ], @@ -57019,36 +55308,34 @@ "application\/json" ], "tags": [ - "storage" + "proxy" ], - "description": "Create a new storage bucket.", + "description": "Create a new proxy rule for serving Appwrite's API on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", "responses": { "201": { - "description": "Bucket", + "description": "Rule", "schema": { - "$ref": "#\/definitions\/bucket" + "$ref": "#\/definitions\/proxyRule" } } }, "deprecated": false, "x-appwrite": { - "method": "createBucket", - "group": "buckets", - "weight": 548, + "method": "createAPIRule", + "group": "rules", "cookies": false, "type": "", - "demo": "storage\/create-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "demo": "proxy\/create-api-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", "auth": { "Project": [] } @@ -57066,136 +55353,59 @@ "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": { + "domain": { "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 + "description": "Domain name.", + "x-example": null } }, "required": [ - "bucketId", - "name" + "domain" ] } } ] } }, - "\/storage\/buckets\/{bucketId}": { - "get": { - "summary": "Get bucket", - "operationId": "storageGetBucket", - "consumes": [], + "\/proxy\/rules\/function": { + "post": { + "summary": "Create function rule", + "operationId": "proxyCreateFunctionRule", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "storage" + "proxy" ], - "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", + "description": "Create a new proxy rule for executing Appwrite Function on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", "responses": { - "200": { - "description": "Bucket", + "201": { + "description": "Rule", "schema": { - "$ref": "#\/definitions\/bucket" + "$ref": "#\/definitions\/proxyRule" } } }, "deprecated": false, "x-appwrite": { - "method": "getBucket", - "group": "buckets", - "weight": 549, + "method": "createFunctionRule", + "group": "rules", "cookies": false, "type": "", - "demo": "storage\/get-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", + "demo": "proxy\/create-function-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket.md", "auth": { "Project": [] } @@ -57208,18 +55418,41 @@ ], "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": { + "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", + "default": "", + "x-example": "<BRANCH>" + } + }, + "required": [ + "domain", + "functionId" + ] + } } ] - }, - "put": { - "summary": "Update bucket", - "operationId": "storageUpdateBucket", + } + }, + "\/proxy\/rules\/redirect": { + "post": { + "summary": "Create Redirect rule", + "operationId": "proxyCreateRedirectRule", "consumes": [ "application\/json" ], @@ -57227,36 +55460,34 @@ "application\/json" ], "tags": [ - "storage" + "proxy" ], - "description": "Update a storage bucket by its unique ID.", + "description": "Create a new proxy rule for to redirect from custom domain to another domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", "responses": { - "200": { - "description": "Bucket", + "201": { + "description": "Rule", "schema": { - "$ref": "#\/definitions\/bucket" + "$ref": "#\/definitions\/proxyRule" } } }, "deprecated": false, "x-appwrite": { - "method": "updateBucket", - "group": "buckets", - "weight": 551, + "method": "createRedirectRule", + "group": "rules", "cookies": false, "type": "", - "demo": "storage\/update-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "demo": "proxy\/create-redirect-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-bucket.md", "auth": { "Project": [] } @@ -57268,138 +55499,106 @@ } ], "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": { - "name": { + "domain": { "type": "string", - "description": "Bucket name", - "default": null, - "x-example": "<NAME>" + "description": "Domain 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).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } + "url": { + "type": "string", + "description": "Target URL of redirection", + "x-example": "https:\/\/example.com", + "format": "url" }, - "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": { + "statusCode": { "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", + "description": "Status code of redirection", + "x-example": "301", "enum": [ - "none", - "gzip", - "zstd" + "301", + "302", + "307", + "308" ], - "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 + "x-enum-name": "RedirectStatusCode" }, - "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 + "resourceId": { + "type": "string", + "description": "ID of parent resource.", + "x-example": "<RESOURCE_ID>" }, - "transformations": { - "type": "boolean", - "description": "Are image transformations enabled?", - "default": true, - "x-example": false + "resourceType": { + "type": "string", + "description": "Type of parent resource.", + "x-example": "site", + "enum": [ + "site", + "function" + ], + "x-enum-name": "ProxyResourceType", + "x-enum-keys": [ + "Site", + "Function" + ] } }, "required": [ - "name" + "domain", + "url", + "statusCode", + "resourceId", + "resourceType" ] } } ] - }, - "delete": { - "summary": "Delete bucket", - "operationId": "storageDeleteBucket", + } + }, + "\/proxy\/rules\/site": { + "post": { + "summary": "Create site rule", + "operationId": "proxyCreateSiteRule", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "storage" + "proxy" ], - "description": "Delete a storage bucket by its unique ID.", + "description": "Create a new proxy rule for serving Appwrite Site on custom domain.\n\nRule ID is automatically generated as MD5 hash of a rule domain for performance purposes.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Rule", + "schema": { + "$ref": "#\/definitions\/proxyRule" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBucket", - "group": "buckets", - "weight": 552, + "method": "createSiteRule", + "group": "rules", "cookies": false, "type": "", - "demo": "storage\/delete-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "demo": "proxy\/create-site-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-bucket.md", "auth": { "Project": [] } @@ -57412,56 +55611,74 @@ ], "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": { + "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", + "default": "", + "x-example": "<BRANCH>" + } + }, + "required": [ + "domain", + "siteId" + ] + } } ] } }, - "\/storage\/buckets\/{bucketId}\/files": { + "\/proxy\/rules\/{ruleId}": { "get": { - "summary": "List files", - "operationId": "storageListFiles", + "summary": "Get rule", + "operationId": "proxyGetRule", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "storage" + "proxy" ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", + "description": "Get a proxy rule by its unique ID.", "responses": { "200": { - "description": "Files List", + "description": "Rule", "schema": { - "$ref": "#\/definitions\/fileList" + "$ref": "#\/definitions\/proxyRule" } } }, "deprecated": false, "x-appwrite": { - "method": "listFiles", - "group": "files", - "weight": 555, + "method": "getRule", + "group": "rules", "cookies": false, "type": "", - "demo": "storage\/list-files.md", + "demo": "proxy\/get-rule.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "rules.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": [] } @@ -57469,93 +55686,114 @@ "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": "ruleId", + "description": "Rule ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "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": "rules", + "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", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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" - }, + "Project": [], + "Key": [] + } + ], + "parameters": [ { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "ruleId", + "description": "Rule 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": "<RULE_ID>", + "in": "path" } ] - }, - "post": { - "summary": "Create file", - "operationId": "storageCreateFile", + } + }, + "\/proxy\/rules\/{ruleId}\/status": { + "patch": { + "summary": "Update rule status", + "operationId": "proxyUpdateRuleStatus", "consumes": [ - "multipart\/form-data" + "application\/json" ], "produces": [ "application\/json" ], "tags": [ - "storage" + "proxy" ], - "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": "If not succeeded yet, retry verification process of a proxy rule domain. This endpoint triggers domain verification by checking DNS records. If verification is successful, a TLS certificate will be automatically provisioned for the domain asynchronously in the background.", "responses": { - "201": { - "description": "File", + "200": { + "description": "Rule", "schema": { - "$ref": "#\/definitions\/file" + "$ref": "#\/definitions\/proxyRule" } } }, "deprecated": false, "x-appwrite": { - "method": "createFile", - "group": "files", - "weight": 1208, + "method": "updateRuleStatus", + "group": "rules", "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": "proxy\/update-rule-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.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": [] } @@ -57563,91 +55801,59 @@ "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": "ruleId", + "description": "Rule ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<RULE_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}": { + "\/reports": { "get": { - "summary": "Get file", - "operationId": "storageGetFile", + "summary": "List reports", + "operationId": "advisorListReports", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "storage" + "advisor" ], - "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 project's analyzer reports. You can use the query params to filter your results.\n", "responses": { "200": { - "description": "File", + "description": "Reports List", "schema": { - "$ref": "#\/definitions\/file" + "$ref": "#\/definitions\/reportList" } } }, "deprecated": false, "x-appwrite": { - "method": "getFile", - "group": "files", - "weight": 554, + "method": "listReports", + "group": "reports", "cookies": false, "type": "", - "demo": "storage\/get-file.md", + "demo": "advisor\/list-reports.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "reports.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\/advisor\/list-reports.md", "auth": { "Project": [] } @@ -57655,71 +55861,72 @@ "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).", - "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: appId, type, targetType, target, analyzedAt", + "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.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - }, - "put": { - "summary": "Update file", - "operationId": "storageUpdateFile", - "consumes": [ - "application\/json" - ], + } + }, + "\/reports\/{reportId}": { + "get": { + "summary": "Get report", + "operationId": "advisorGetReport", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "storage" + "advisor" ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "description": "Get an analyzer report by its unique ID. The response includes the report's metadata and the nested insights it produced.\n", "responses": { "200": { - "description": "File", + "description": "Report", "schema": { - "$ref": "#\/definitions\/file" + "$ref": "#\/definitions\/report" } } }, "deprecated": false, "x-appwrite": { - "method": "updateFile", - "group": "files", - "weight": 556, + "method": "getReport", + "group": "reports", "cookies": false, "type": "", - "demo": "storage\/update-file.md", + "demo": "advisor\/get-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", + "scope": "reports.read", "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\/advisor\/get-report.md", "auth": { "Project": [] } @@ -57727,66 +55934,31 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", + "name": "reportId", + "description": "Report ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<REPORT_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", + "summary": "Delete report", + "operationId": "advisorDeleteReport", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "storage" + "advisor" ], - "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Delete an analyzer report by its unique ID. Nested insights and CTA metadata are removed asynchronously by the deletes worker.\n", "responses": { "204": { "description": "No content" @@ -57794,24 +55966,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteFile", - "group": "files", - "weight": 557, + "method": "deleteReport", + "group": "reports", "cookies": false, "type": "", - "demo": "storage\/delete-file.md", + "demo": "advisor\/delete-report.md", "rate-limit": 60, "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "files.write", + "rate-key": "projectId:{projectId},userId:{userId}", + "scope": "reports.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\/advisor\/delete-report.md", "auth": { "Project": [] } @@ -57819,152 +55989,59 @@ "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).", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", + "name": "reportId", + "description": "Report ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<REPORT_ID>", "in": "path" } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { + "\/reports\/{reportId}\/insights": { "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": 559, - "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": [], - "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" - } - ] - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { - "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", + "summary": "List insights", + "operationId": "advisorListInsights", "consumes": [], "produces": [ - "image\/*" + "application\/json" ], "tags": [ - "storage" + "advisor" ], - "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 the insights produced under a single analyzer report. You can use the query params to filter your results further.\n", "responses": { "200": { - "description": "Image", + "description": "Insights List", "schema": { - "type": "file" + "$ref": "#\/definitions\/insightList" } } }, "deprecated": false, "x-appwrite": { - "method": "getFilePreview", - "group": "files", - "weight": 558, + "method": "listInsights", + "group": "insights", "cookies": false, - "type": "location", - "demo": "storage\/get-file-preview.md", + "type": "", + "demo": "advisor\/list-insights.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "insights.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\/advisor\/list-insights.md", "auth": { "Project": [] } @@ -57972,208 +56049,80 @@ "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).", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File ID", + "name": "reportId", + "description": "Parent report ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<REPORT_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 attributes: type, severity, status, resourceType, resourceId, parentResourceType, parentResourceId, analyzedAt, dismissedAt, dismissedBy", "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": { + "\/reports\/{reportId}\/insights\/{insightId}": { "get": { - "summary": "Get file for view", - "operationId": "storageGetFileView", + "summary": "Get insight", + "operationId": "advisorGetInsight", "consumes": [], "produces": [ - "*\/*" + "application\/json" ], "tags": [ - "storage" + "advisor" ], - "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": "Get an insight by its unique ID, scoped to its parent report.\n", "responses": { "200": { - "description": "File", + "description": "Insight", "schema": { - "type": "file" + "$ref": "#\/definitions\/insight" } } }, "deprecated": false, "x-appwrite": { - "method": "getFileView", - "group": "files", - "weight": 560, + "method": "getInsight", + "group": "insights", "cookies": false, - "type": "location", - "demo": "storage\/get-file-view.md", + "type": "", + "demo": "advisor\/get-insight.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "insights.read", "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\/advisor\/get-insight.md", "auth": { "Project": [] } @@ -58181,229 +56130,66 @@ "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).", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", + "name": "reportId", + "description": "Parent report ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<REPORT_ID>", "in": "path" }, { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "type": "string", - "x-example": "<TOKEN>", - "default": "", - "in": "query" - } - ] - } - }, - "\/storage\/usage": { - "get": { - "summary": "Get storage usage stats", - "operationId": "storageGetUsage", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "storage" - ], - "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": "StorageUsage", - "schema": { - "$ref": "#\/definitions\/usageStorage" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 562, - "cookies": false, - "type": "", - "demo": "storage\/get-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "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": [] - } - }, - "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" - } - ] - } - }, - "\/storage\/{bucketId}\/usage": { - "get": { - "summary": "Get bucket usage stats", - "operationId": "storageGetBucketUsage", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "storage" - ], - "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": "UsageBuckets", - "schema": { - "$ref": "#\/definitions\/usageBuckets" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getBucketUsage", - "group": null, - "weight": 563, - "cookies": false, - "type": "", - "demo": "storage\/get-bucket-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "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": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket ID.", + "name": "insightId", + "description": "Insight ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<INSIGHT_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" } ] } }, - "\/tablesdb": { + "\/sites": { "get": { - "summary": "List databases", - "operationId": "tablesDBList", + "summary": "List sites", + "operationId": "sitesList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", "responses": { "200": { - "description": "Databases List", + "description": "Sites List", "schema": { - "$ref": "#\/definitions\/databaseList" + "$ref": "#\/definitions\/siteList" } } }, "deprecated": false, "x-appwrite": { "method": "list", - "group": "tablesdb", - "weight": 780, + "group": "sites", "cookies": false, "type": "", - "demo": "tablesdb\/list.md", + "demo": "sites\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", "auth": { "Project": [] } @@ -58417,7 +56203,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 columns: name", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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", @@ -58448,8 +56234,8 @@ ] }, "post": { - "summary": "Create database", - "operationId": "tablesDBCreate", + "summary": "Create site", + "operationId": "sitesCreate", "consumes": [ "application\/json" ], @@ -58457,36 +56243,34 @@ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Create a new Database.\n", + "description": "Create a new site.", "responses": { "201": { - "description": "Database", + "description": "Site", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/site" } } }, "deprecated": false, "x-appwrite": { "method": "create", - "group": "tablesdb", - "weight": 776, + "group": "sites", "cookies": false, "type": "", - "demo": "tablesdb\/create.md", + "demo": "sites\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", "auth": { "Project": [] } @@ -58504,77 +56288,316 @@ "schema": { "type": "object", "properties": { - "databaseId": { + "siteId": { "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>" + "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": "Database name. Max length: 128 chars.", - "default": null, + "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": "SiteFramework" + }, "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.", + "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>" + }, + "startCommand": { + "type": "string", + "description": "Custom start command. Leave empty to use default.", + "default": "", + "x-example": "<START_COMMAND>" + }, + "outputDirectory": { + "type": "string", + "description": "Output Directory for site.", + "default": "", + "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", + "dart-3.11", + "dart-3.12", + "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", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ], + "x-enum-name": "SiteBuildRuntime" + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": "SiteAdapter" + }, + "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>" + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "buildSpecification": { + "type": "string", + "description": "Build specification for the site deployments.", + "default": {}, + "x-example": null + }, + "runtimeSpecification": { + "type": "string", + "description": "Runtime specification for the SSR executions.", + "default": {}, + "x-example": null + }, + "deploymentRetention": { + "type": "integer", + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, + "x-example": 0, + "format": "int32" } }, "required": [ - "databaseId", - "name" + "siteId", + "name", + "framework", + "buildRuntime" ] } } ] } }, - "\/tablesdb\/transactions": { + "\/sites\/frameworks": { "get": { - "summary": "List transactions", - "operationId": "tablesDBListTransactions", + "summary": "List frameworks", + "operationId": "sitesListFrameworks", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "List transactions across all databases.", + "description": "Get a list of all frameworks that are currently available on the server instance.", "responses": { "200": { - "description": "Transaction List", + "description": "Frameworks List", "schema": { - "$ref": "#\/definitions\/transactionList" + "$ref": "#\/definitions\/frameworkList" } } }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 849, + "method": "listFrameworks", + "group": "frameworks", "cookies": false, "type": "", - "demo": "tablesdb\/list-transactions.md", + "demo": "sites\/list-frameworks.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.read", - "rows.read" - ], + "scope": "public", "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": [] } @@ -58582,70 +56605,48 @@ "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" + "Key": [] } ] - }, - "post": { - "summary": "Create transaction", - "operationId": "tablesDBCreateTransaction", - "consumes": [ - "application\/json" - ], + } + }, + "\/sites\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "sitesListSpecifications", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Create a new transaction.", + "description": "List allowed site specifications for this instance.", "responses": { - "201": { - "description": "Transaction", + "200": { + "description": "Specifications List", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/specificationList" } } }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 845, + "method": "listSpecifications", + "group": "frameworks", "cookies": false, "type": "", - "demo": "tablesdb\/create-transaction.md", + "demo": "sites\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "sites.read", "platforms": [ - "console", "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", "auth": { "Project": [] } @@ -58653,352 +56654,208 @@ "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" - } - } - } + "Key": [] } ] } }, - "\/tablesdb\/transactions\/{transactionId}": { + "\/sites\/templates": { "get": { - "summary": "Get transaction", - "operationId": "tablesDBGetTransaction", + "summary": "List templates", + "operationId": "sitesListTemplates", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Get a transaction by its unique ID.", + "description": "List available site templates. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", "responses": { "200": { - "description": "Transaction", + "description": "Site Templates List", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/templateSiteList" } } }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 846, + "method": "listTemplates", + "group": "templates", "cookies": false, "type": "", - "demo": "tablesdb\/get-transaction.md", + "demo": "sites\/list-templates.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.read", - "rows.read" - ], + "scope": "public", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "type": "string", - "x-example": "<TRANSACTION_ID>", - "in": "path" + "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": "SiteFramework" + }, + "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": "SiteTemplateUseCase" + }, + "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" } ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", - "consumes": [ - "application\/json" - ], + } + }, + "\/sites\/templates\/{templateId}": { + "get": { + "summary": "Get site template", + "operationId": "sitesGetTemplate", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "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": "Transaction", + "description": "Template Site", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/templateSite" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 847, + "method": "getTemplate", + "group": "templates", "cookies": false, "type": "", - "demo": "tablesdb\/update-transaction.md", + "demo": "sites\/get-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "public", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "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": 848, - "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": [], - "Key": [], - "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": 850, - "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": [], - "Key": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", + "name": "templateId", + "description": "Template ID.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", + "x-example": "<TEMPLATE_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\/usage": { + "\/sites\/usage": { "get": { - "summary": "Get TablesDB usage stats", - "operationId": "tablesDBListUsage", + "summary": "Get sites usage", + "operationId": "sitesListUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "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": "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": "UsageDatabases", + "description": "UsageSites", "schema": { - "$ref": "#\/definitions\/usageDatabases" + "$ref": "#\/definitions\/usageSites" } } }, @@ -59006,46 +56863,18 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 782, "cookies": false, "type": "", - "demo": "tablesdb\/list-usage.md", + "demo": "sites\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "sites.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": "#\/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": [] } @@ -59079,45 +56908,43 @@ ] } }, - "\/tablesdb\/{databaseId}": { + "\/sites\/{siteId}": { "get": { - "summary": "Get database", - "operationId": "tablesDBGet", + "summary": "Get site", + "operationId": "sitesGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Get a site by its unique ID.", "responses": { "200": { - "description": "Database", + "description": "Site", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/site" } } }, "deprecated": false, "x-appwrite": { "method": "get", - "group": "tablesdb", - "weight": 777, + "group": "sites", "cookies": false, "type": "", - "demo": "tablesdb\/get.md", + "demo": "sites\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", "auth": { "Project": [] } @@ -59130,18 +56957,18 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_ID>", "in": "path" } ] }, "put": { - "summary": "Update database", - "operationId": "tablesDBUpdate", + "summary": "Update site", + "operationId": "sitesUpdate", "consumes": [ "application\/json" ], @@ -59149,36 +56976,34 @@ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Update a database by its unique ID.", + "description": "Update site by its unique ID.", "responses": { "200": { - "description": "Database", + "description": "Site", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/site" } } }, "deprecated": false, "x-appwrite": { "method": "update", - "group": "tablesdb", - "weight": 778, + "group": "sites", "cookies": false, "type": "", - "demo": "tablesdb\/update.md", + "demo": "sites\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", "auth": { "Project": [] } @@ -59191,11 +57016,11 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { @@ -59206,32 +57031,280 @@ "properties": { "name": { "type": "string", - "description": "Database name. Max length: 128 chars.", - "default": null, + "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": "SiteFramework" + }, "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.", + "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>" + }, + "startCommand": { + "type": "string", + "description": "Custom start command. Leave empty to use default.", + "default": "", + "x-example": "<START_COMMAND>" + }, + "outputDirectory": { + "type": "string", + "description": "Output Directory for site.", + "default": "", + "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", + "dart-3.11", + "dart-3.12", + "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", + "rust-1.83", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38", + "flutter-3.41", + "flutter-3.44" + ], + "x-enum-name": "SiteBuildRuntime" + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": "SiteAdapter" + }, + "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>" + }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "buildSpecification": { + "type": "string", + "description": "Build specification for the site deployments.", + "default": {}, + "x-example": null + }, + "runtimeSpecification": { + "type": "string", + "description": "Runtime specification for the SSR executions.", + "default": {}, + "x-example": null + }, + "deploymentRetention": { + "type": "integer", + "description": "Days to keep non-active deployments before deletion. Value 0 means all deployments will be kept.", + "default": 0, + "x-example": 0, + "format": "int32" } - } - } - } - ] + }, + "required": [ + "name", + "framework" + ] + } + } + ] }, "delete": { - "summary": "Delete database", - "operationId": "tablesDBDelete", + "summary": "Delete site", + "operationId": "sitesDelete", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "tablesDB" + "sites" ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "description": "Delete a site by its unique ID.", "responses": { "204": { "description": "No content" @@ -59240,22 +57313,20 @@ "deprecated": false, "x-appwrite": { "method": "delete", - "group": "tablesdb", - "weight": 779, + "group": "sites", "cookies": false, "type": "", - "demo": "tablesdb\/delete.md", + "demo": "sites\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", "auth": { "Project": [] } @@ -59268,58 +57339,131 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_ID>", "in": "path" } ] } }, - "\/tablesdb\/{databaseId}\/tables": { + "\/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", + "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.", + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + ] + } + }, + "\/sites\/{siteId}\/deployments": { "get": { - "summary": "List tables", - "operationId": "tablesDBListTables", + "summary": "List deployments", + "operationId": "sitesListDeployments", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter 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": "Tables List", + "description": "Deployments List", "schema": { - "$ref": "#\/definitions\/tableList" + "$ref": "#\/definitions\/deploymentList" } } }, "deprecated": false, "x-appwrite": { - "method": "listTables", - "group": "tables", - "weight": 787, + "method": "listDeployments", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/list-tables.md", + "demo": "sites\/list-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", "auth": { "Project": [] } @@ -59332,16 +57476,16 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_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 columns: name, enabled, rowSecurity", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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", @@ -59372,48 +57516,43 @@ ] }, "post": { - "summary": "Create table", - "operationId": "tablesDBCreateTable", + "summary": "Create deployment", + "operationId": "sitesCreateDeployment", "consumes": [ - "application\/json" + "multipart\/form-data" ], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "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 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": "Table", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/table" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "createTable", - "group": "tables", - "weight": 783, + "method": "createDeployment", + "group": "deployments", "cookies": false, - "type": "", - "demo": "tablesdb\/create-table.md", + "type": "upload", + "demo": "sites\/create-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "sites.write", "platforms": [ "console", "server" ], - "packaging": false, + "packaging": true, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", "auth": { "Project": [] } @@ -59426,123 +57565,95 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_ID>", "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": { - "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" - ] - } + "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" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}": { - "get": { - "summary": "Get table", - "operationId": "tablesDBGetTable", - "consumes": [], + "\/sites\/{siteId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "sitesCreateDuplicateDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", + "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": "Table", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/table" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getTable", - "group": "tables", - "weight": 784, + "method": "createDuplicateDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/get-table.md", + "demo": "sites\/create-duplicate-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", "auth": { "Project": [] } @@ -59555,26 +57666,37 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_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": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } } ] - }, - "put": { - "summary": "Update table", - "operationId": "tablesDBUpdateTable", + } + }, + "\/sites\/{siteId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "sitesCreateTemplateDeployment", "consumes": [ "application\/json" ], @@ -59582,39 +57704,34 @@ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Update a table by its unique ID.", + "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": "Table", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/table" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTable", - "group": "tables", - "weight": 785, + "method": "createTemplateDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/update-table.md", + "demo": "sites\/create-template-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", "auth": { "Project": [] } @@ -59627,19 +57744,11 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { @@ -59648,83 +57757,95 @@ "schema": { "type": "object", "properties": { - "name": { + "repository": { "type": "string", - "description": "Table name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "Repository name of the template.", + "x-example": "<REPOSITORY>" }, - "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" - } + "owner": { + "type": "string", + "description": "The name of the owner of the template.", + "x-example": "<OWNER>" }, - "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 + "rootDirectory": { + "type": "string", + "description": "Path to site code in the template repo.", + "x-example": "<ROOT_DIRECTORY>" }, - "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 + "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" }, - "purge": { + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "x-example": "<REFERENCE>" + }, + "activate": { "type": "boolean", - "description": "When true, purge all cached list responses for this table as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "description": "Automatically activate the deployment when it is finished building.", "default": false, "x-example": false } - } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] } } ] - }, - "delete": { - "summary": "Delete table", - "operationId": "tablesDBDeleteTable", + } + }, + "\/sites\/{siteId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "sitesCreateVcsDeployment", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "tablesDB" + "sites" ], - "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", + "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", + "schema": { + "$ref": "#\/definitions\/deployment" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTable", - "group": "tables", - "weight": 786, + "method": "createVcsDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/delete-table.md", + "demo": "sites\/create-vcs-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", "auth": { "Project": [] } @@ -59737,68 +57858,88 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { - "get": { - "summary": "List columns", - "operationId": "tablesDBListColumns", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "tablesDB" - ], - "description": "List columns in the table.", - "responses": { - "200": { - "description": "Columns List", - "schema": { - "$ref": "#\/definitions\/columnList" + "name": "payload", + "in": "body", + "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" + }, + "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.", + "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": "listColumns", - "group": "columns", - "weight": 792, + "method": "getDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/list-columns.md", + "demo": "sites\/get-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read", - "columns.read", - "attributes.read" - ], + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", "auth": { "Project": [] } @@ -59811,91 +57952,56 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "deploymentId", + "description": "Deployment ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<DEPLOYMENT_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\/bigint": { - "post": { - "summary": "Create bigint column", - "operationId": "tablesDBCreateBigIntColumn", + }, + "delete": { + "summary": "Delete deployment", + "operationId": "sitesDeleteDeployment", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "tablesDB" + "sites" ], - "description": "Create a bigint column. Optionally, minimum and maximum values can be provided.\n", + "description": "Delete a site deployment by its unique ID.", "responses": { - "202": { - "description": "ColumnBigInt", - "schema": { - "$ref": "#\/definitions\/columnBigint" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createBigIntColumn", - "group": "columns", - "weight": 805, + "method": "deleteDeployment", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/create-big-int-column.md", + "demo": "sites\/delete-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-bigint-column.md", "auth": { "Project": [] } @@ -59908,125 +58014,61 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "deploymentId", + "description": "Deployment ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<DEPLOYMENT_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 - }, - "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" - ] - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { - "patch": { - "summary": "Update bigint column", - "operationId": "tablesDBUpdateBigIntColumn", - "consumes": [ - "application\/json" - ], + "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "sitesGetDeploymentDownload", + "consumes": [], "produces": [ - "application\/json" + "*\/*" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Update a bigint column. Changing the `default` value will not update already existing rows.\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": "ColumnBigInt", + "description": "File", "schema": { - "$ref": "#\/definitions\/columnBigint" + "type": "file" } } }, "deprecated": false, "x-appwrite": { - "method": "updateBigIntColumn", - "group": "columns", - "weight": 806, + "method": "getDeploymentDownload", + "group": "deployments", "cookies": false, - "type": "", - "demo": "tablesdb\/update-big-int-column.md", + "type": "location", + "demo": "sites\/get-deployment-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-bigint-column.md", "auth": { "Project": [] } @@ -60034,90 +58076,48 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "deploymentId", + "description": "Deployment ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<DEPLOYMENT_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, "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" - ] - } + "x-example": "source", + "enum": [ + "source", + "output" + ], + "x-enum-name": "DeploymentDownloadType", + "default": "source", + "in": "query" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { - "post": { - "summary": "Create boolean column", - "operationId": "tablesDBCreateBooleanColumn", + "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "sitesUpdateDeploymentStatus", "consumes": [ "application\/json" ], @@ -60125,41 +58125,34 @@ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Create a boolean column.\n", + "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": { - "202": { - "description": "ColumnBoolean", + "200": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/columnBoolean" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "createBooleanColumn", - "group": "columns", - "weight": 793, + "method": "updateDeploymentStatus", + "group": "deployments", "cookies": false, "type": "", - "demo": "tablesdb\/create-boolean-column.md", + "demo": "sites\/update-deployment-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.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": [] } @@ -60172,108 +58165,61 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_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": "deploymentId", + "description": "Deployment ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<DEPLOYMENT_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" - ] - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { - "patch": { - "summary": "Update boolean column", - "operationId": "tablesDBUpdateBooleanColumn", - "consumes": [ - "application\/json" - ], + "\/sites\/{siteId}\/logs": { + "get": { + "summary": "List logs", + "operationId": "sitesListLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", + "description": "Get a list of all site logs. You can use the query params to filter your results.", "responses": { "200": { - "description": "ColumnBoolean", + "description": "Executions List", "schema": { - "$ref": "#\/definitions\/columnBoolean" + "$ref": "#\/definitions\/executionList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateBooleanColumn", - "group": "columns", - "weight": 794, + "method": "listLogs", + "group": "logs", "cookies": false, "type": "", - "demo": "tablesdb\/update-boolean-column.md", + "demo": "sites\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "log.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-boolean-column.md", "auth": { "Project": [] } @@ -60286,110 +58232,74 @@ ], "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": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<SITE_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: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "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": "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" - ] - } + "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": { - "post": { - "summary": "Create datetime column", - "operationId": "tablesDBCreateDatetimeColumn", - "consumes": [ - "application\/json" - ], + "\/sites\/{siteId}\/logs\/{logId}": { + "get": { + "summary": "Get log", + "operationId": "sitesGetLog", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Create a date time column according to the ISO 8601 standard.", + "description": "Get a site request log by its unique ID.", "responses": { - "202": { - "description": "ColumnDatetime", + "200": { + "description": "Execution", "schema": { - "$ref": "#\/definitions\/columnDatetime" + "$ref": "#\/definitions\/execution" } } }, "deprecated": false, "x-appwrite": { - "method": "createDatetimeColumn", - "group": "columns", - "weight": 795, + "method": "getLog", + "group": "logs", "cookies": false, "type": "", - "demo": "tablesdb\/create-datetime-column.md", + "demo": "sites\/get-log.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "log.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-datetime-column.md", "auth": { "Project": [] } @@ -60402,67 +58312,26 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "logId", + "description": "Log ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<LOG_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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { - "patch": { - "summary": "Update dateTime column", - "operationId": "tablesDBUpdateDatetimeColumn", + }, + "delete": { + "summary": "Delete log", + "operationId": "sitesDeleteLog", "consumes": [ "application\/json" ], @@ -60470,41 +58339,31 @@ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Update a date time column. Changing the `default` value will not update already existing rows.", + "description": "Delete a site log by its unique ID.", "responses": { - "200": { - "description": "ColumnDatetime", - "schema": { - "$ref": "#\/definitions\/columnDatetime" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateDatetimeColumn", - "group": "columns", - "weight": 796, + "method": "deleteLog", + "group": "logs", "cookies": false, "type": "", - "demo": "tablesdb\/update-datetime-column.md", + "demo": "sites\/delete-log.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "log.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": [] } @@ -60517,226 +58376,138 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "logId", + "description": "Log ID.", "required": true, "type": "string", + "x-example": "<LOG_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": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", - "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 email column", - "operationId": "tablesDBCreateEmailColumn", - "consumes": [ - "application\/json" - ], + "\/sites\/{siteId}\/usage": { + "get": { + "summary": "Get site usage", + "operationId": "sitesGetUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Create an email column.\n", + "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": { - "202": { - "description": "ColumnEmail", + "200": { + "description": "UsageSite", "schema": { - "$ref": "#\/definitions\/columnEmail" + "$ref": "#\/definitions\/usageSite" } } }, "deprecated": false, "x-appwrite": { - "method": "createEmailColumn", - "group": "columns", - "weight": 797, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "tablesdb\/create-email-column.md", + "demo": "sites\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-email-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID.", - "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": "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" - ] - } + "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\/email\/{key}": { - "patch": { - "summary": "Update email column", - "operationId": "tablesDBUpdateEmailColumn", - "consumes": [ - "application\/json" - ], + "\/sites\/{siteId}\/variables": { + "get": { + "summary": "List variables", + "operationId": "sitesListVariables", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a list of all variables of a specific site.", "responses": { "200": { - "description": "ColumnEmail", + "description": "Variables List", "schema": { - "$ref": "#\/definitions\/columnEmail" + "$ref": "#\/definitions\/variableList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEmailColumn", - "group": "columns", - "weight": 798, + "method": "listVariables", + "group": "variables", "cookies": false, "type": "", - "demo": "tablesdb\/update-email-column.md", + "demo": "sites\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-email-column.md", "auth": { "Project": [] } @@ -60749,69 +58520,39 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<SITE_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: key, resourceType, resourceId, secret", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "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": "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" - ] - } + "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\/enum": { + }, "post": { - "summary": "Create enum column", - "operationId": "tablesDBCreateEnumColumn", + "summary": "Create variable", + "operationId": "sitesCreateVariable", "consumes": [ "application\/json" ], @@ -60819,41 +58560,34 @@ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", "responses": { - "202": { - "description": "ColumnEnum", + "201": { + "description": "Variable", "schema": { - "$ref": "#\/definitions\/columnEnum" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "createEnumColumn", - "group": "columns", - "weight": 799, + "method": "createVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "tablesdb\/create-enum-column.md", + "demo": "sites\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-enum-column.md", "auth": { "Project": [] } @@ -60866,19 +58600,11 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { @@ -60887,97 +58613,75 @@ "schema": { "type": "object", "properties": { - "key": { + "variableId": { "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" - } + "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<VARIABLE_ID>" }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" }, - "default": { + "value": { "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 + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>" }, - "array": { + "secret": { "type": "boolean", - "description": "Is column an array?", - "default": false, + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "default": true, "x-example": false } }, "required": [ + "variableId", "key", - "elements", - "required" + "value" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { - "patch": { - "summary": "Update enum column", - "operationId": "tablesDBUpdateEnumColumn", - "consumes": [ - "application\/json" - ], + "\/sites\/{siteId}\/variables\/{variableId}": { + "get": { + "summary": "Get variable", + "operationId": "sitesGetVariable", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a variable by its unique ID.", "responses": { "200": { - "description": "ColumnEnum", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/columnEnum" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEnumColumn", - "group": "columns", - "weight": 800, + "method": "getVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "tablesdb\/update-enum-column.md", + "demo": "sites\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-enum-column.md", "auth": { "Project": [] } @@ -60990,78 +58694,26 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "type": "string", + "x-example": "<VARIABLE_ID>", "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\/{databaseId}\/tables\/{tableId}\/columns\/float": { - "post": { - "summary": "Create float column", - "operationId": "tablesDBCreateFloatColumn", + }, + "put": { + "summary": "Update variable", + "operationId": "sitesUpdateVariable", "consumes": [ "application\/json" ], @@ -61069,41 +58721,34 @@ "application\/json" ], "tags": [ - "tablesDB" + "sites" ], - "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", + "description": "Update variable by its unique ID.", "responses": { - "202": { - "description": "ColumnFloat", + "200": { + "description": "Variable", "schema": { - "$ref": "#\/definitions\/columnFloat" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "createFloatColumn", - "group": "columns", - "weight": 801, + "method": "updateVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "tablesdb\/create-float-column.md", + "demo": "sites\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-float-column.md", "auth": { "Project": [] } @@ -61116,19 +58761,19 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<VARIABLE_ID>", "in": "path" }, { @@ -61139,102 +58784,60 @@ "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", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>", "x-nullable": true }, - "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", - "default": null, - "x-example": null, - "format": "float", + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>", "x-nullable": true }, - "array": { + "secret": { "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false + "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", - "required" - ] + } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { - "patch": { - "summary": "Update float column", - "operationId": "tablesDBUpdateFloatColumn", + }, + "delete": { + "summary": "Delete variable", + "operationId": "sitesDeleteVariable", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "tablesDB" + "sites" ], - "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", + "description": "Delete a variable by its unique ID.", "responses": { - "200": { - "description": "ColumnFloat", - "schema": { - "$ref": "#\/definitions\/columnFloat" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateFloatColumn", - "group": "columns", - "weight": 802, + "method": "deleteVariable", + "group": "variables", "cookies": false, "type": "", - "demo": "tablesdb\/update-float-column.md", + "demo": "sites\/delete-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", "auth": { "Project": [] } @@ -61247,127 +58850,62 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "variableId", + "description": "Variable unique ID.", "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 - }, - "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" - ] - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { - "post": { - "summary": "Create integer column", - "operationId": "tablesDBCreateIntegerColumn", - "consumes": [ - "application\/json" - ], + "\/storage\/buckets": { + "get": { + "summary": "List buckets", + "operationId": "storageListBuckets", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", "responses": { - "202": { - "description": "ColumnInteger", + "200": { + "description": "Buckets List", "schema": { - "$ref": "#\/definitions\/columnInteger" + "$ref": "#\/definitions\/bucketList" } } }, "deprecated": false, "x-appwrite": { - "method": "createIntegerColumn", - "group": "columns", - "weight": 803, + "method": "listBuckets", + "group": "buckets", "cookies": false, "type": "", - "demo": "tablesdb\/create-integer-column.md", + "demo": "storage\/list-buckets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "buckets.read", "platforms": [ "console", "server" ], "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\/storage\/list-buckets.md", "auth": { "Project": [] } @@ -61380,83 +58918,40 @@ ], "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: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "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, "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 - }, - "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 - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "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\/integer\/{key}": { - "patch": { - "summary": "Update integer column", - "operationId": "tablesDBUpdateIntegerColumn", + }, + "post": { + "summary": "Create bucket", + "operationId": "storageCreateBucket", "consumes": [ "application\/json" ], @@ -61464,41 +58959,35 @@ "application\/json" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", + "description": "Create a new storage bucket.", "responses": { - "200": { - "description": "ColumnInteger", + "201": { + "description": "Bucket", "schema": { - "$ref": "#\/definitions\/columnInteger" + "$ref": "#\/definitions\/bucket" } } }, "deprecated": false, "x-appwrite": { - "method": "updateIntegerColumn", - "group": "columns", - "weight": 804, + "method": "createBucket", + "group": "buckets", "cookies": false, "type": "", - "demo": "tablesdb\/update-integer-column.md", + "demo": "storage\/create-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "buckets.write", "platforms": [ "console", "server" ], "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\/storage\/create-bucket.md", "auth": { "Project": [] } @@ -61510,128 +58999,137 @@ } ], "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" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "required": { + "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\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "fileSecurity": { "type": "boolean", - "description": "Is column required?", - "default": null, + "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 }, - "min": { - "type": "integer", - "description": "Minimum value", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true + "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 }, - "max": { + "maximumFileSize": { "type": "integer", - "description": "Maximum value", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true + "description": "Maximum file size allowed in bytes. Maximum allowed value is 0B.", + "default": {}, + "x-example": 1, + "format": "int32" }, - "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", - "default": null, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "default": [], "x-example": null, - "format": "int64", - "x-nullable": true + "items": { + "type": "string" + } }, - "newKey": { + "compression": { "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true + "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": "Compression" + }, + "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": [ - "required", - "default" + "bucketId", + "name" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { - "post": { - "summary": "Create IP address column", - "operationId": "tablesDBCreateIpColumn", - "consumes": [ - "application\/json" - ], + "\/storage\/buckets\/{bucketId}": { + "get": { + "summary": "Get bucket", + "operationId": "storageGetBucket", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Create IP address column.\n", + "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", "responses": { - "202": { - "description": "ColumnIP", + "200": { + "description": "Bucket", "schema": { - "$ref": "#\/definitions\/columnIp" + "$ref": "#\/definitions\/bucket" } } }, "deprecated": false, "x-appwrite": { - "method": "createIpColumn", - "group": "columns", - "weight": 807, + "method": "getBucket", + "group": "buckets", "cookies": false, "type": "", - "demo": "tablesdb\/create-ip-column.md", + "demo": "storage\/get-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "buckets.read", "platforms": [ "console", "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\/storage\/get-bucket.md", "auth": { "Project": [] } @@ -61644,66 +59142,18 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<BUCKET_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" - ] - } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { - "patch": { - "summary": "Update IP address column", - "operationId": "tablesDBUpdateIpColumn", + }, + "put": { + "summary": "Update bucket", + "operationId": "storageUpdateBucket", "consumes": [ "application\/json" ], @@ -61711,41 +59161,35 @@ "application\/json" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a storage bucket by its unique ID.", "responses": { "200": { - "description": "ColumnIP", + "description": "Bucket", "schema": { - "$ref": "#\/definitions\/columnIp" + "$ref": "#\/definitions\/bucket" } } }, "deprecated": false, "x-appwrite": { - "method": "updateIpColumn", - "group": "columns", - "weight": 808, + "method": "updateBucket", + "group": "buckets", "cookies": false, "type": "", - "demo": "tablesdb\/update-ip-column.md", + "demo": "storage\/update-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "buckets.write", "platforms": [ "console", "server" ], "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\/storage\/update-bucket.md", "auth": { "Project": [] } @@ -61758,26 +59202,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": "key", - "description": "Column Key.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "type": "string", + "x-example": "<BUCKET_ID>", "in": "path" }, { @@ -61786,82 +59215,120 @@ "schema": { "type": "object", "properties": { - "required": { + "name": { + "type": "string", + "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\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "fileSecurity": { "type": "boolean", - "description": "Is column required?", - "default": null, + "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 }, - "default": { - "type": "string", - "description": "Default value. Cannot be set when column is required.", - "default": null, + "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 0B.", + "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, - "x-nullable": true + "items": { + "type": "string" + } }, - "newKey": { + "compression": { "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true + "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": "Compression" + }, + "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": [ - "required", - "default" + "name" ] } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { - "post": { - "summary": "Create line column", - "operationId": "tablesDBCreateLineColumn", + }, + "delete": { + "summary": "Delete bucket", + "operationId": "storageDeleteBucket", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "tablesDB" + "storage" ], - "description": "Create a geometric line column.", + "description": "Delete a storage bucket by its unique ID.", "responses": { - "202": { - "description": "ColumnLine", - "schema": { - "$ref": "#\/definitions\/columnLine" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createLineColumn", - "group": "columns", - "weight": 809, + "method": "deleteBucket", + "group": "buckets", "cookies": false, "type": "", - "demo": "tablesdb\/create-line-column.md", + "demo": "storage\/delete-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "buckets.write", "platforms": [ "console", "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\/storage\/delete-bucket.md", "auth": { "Project": [] } @@ -61874,102 +59341,55 @@ ], "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).", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<BUCKET_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" - ] - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { - "patch": { - "summary": "Update line column", - "operationId": "tablesDBUpdateLineColumn", - "consumes": [ - "application\/json" - ], + "\/storage\/buckets\/{bucketId}\/files": { + "get": { + "summary": "List files", + "operationId": "storageListFiles", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Update a line column. Changing the `default` value will not update already existing rows.", + "description": "Get a list of all the user files. You can use the query params to filter your results.", "responses": { "200": { - "description": "ColumnLine", + "description": "Files List", "schema": { - "$ref": "#\/definitions\/columnLine" + "$ref": "#\/definitions\/fileList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateLineColumn", - "group": "columns", - "weight": 810, + "method": "listFiles", + "group": "files", "cookies": false, "type": "", - "demo": "tablesdb\/update-line-column.md", + "demo": "storage\/list-files.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.read", "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\/storage\/list-files.md", "auth": { "Project": [] } @@ -61977,114 +59397,92 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "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. 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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", + "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, 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" - ] - } + "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": { + }, "post": { - "summary": "Create longtext column", - "operationId": "tablesDBCreateLongtextColumn", + "summary": "Create file", + "operationId": "storageCreateFile", "consumes": [ - "application\/json" + "multipart\/form-data" ], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Create a longtext column.\n", + "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": "ColumnLongtext", + "201": { + "description": "File", "schema": { - "$ref": "#\/definitions\/columnLongtext" + "$ref": "#\/definitions\/file" } } }, "deprecated": false, "x-appwrite": { - "method": "createLongtextColumn", - "group": "columns", - "weight": 827, + "method": "createFile", + "group": "files", "cookies": false, - "type": "", - "demo": "tablesdb\/create-longtext-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.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\/tablesdb\/create-longtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", "auth": { "Project": [] } @@ -62092,119 +59490,90 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "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. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "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": "<TABLE_ID>", - "in": "path" + "x-example": "<FILE_ID>", + "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 - }, - "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": "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" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { - "patch": { - "summary": "Update longtext column", - "operationId": "tablesDBUpdateLongtextColumn", - "consumes": [ - "application\/json" - ], + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", "responses": { "200": { - "description": "ColumnLongtext", + "description": "File", "schema": { - "$ref": "#\/definitions\/columnLongtext" + "$ref": "#\/definitions\/file" } } }, "deprecated": false, "x-appwrite": { - "method": "updateLongtextColumn", - "group": "columns", - "weight": 828, + "method": "getFile", + "group": "files", "cookies": false, "type": "", - "demo": "tablesdb\/update-longtext-column.md", + "demo": "storage\/get-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "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\/storage\/get-file.md", "auth": { "Project": [] } @@ -62212,73 +59581,33 @@ "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": "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 ID.", "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 - }, - "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 mediumtext column", - "operationId": "tablesDBCreateMediumtextColumn", + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", "consumes": [ "application\/json" ], @@ -62286,41 +59615,36 @@ "application\/json" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Create a mediumtext column.\n", + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", "responses": { - "202": { - "description": "ColumnMediumtext", + "200": { + "description": "File", "schema": { - "$ref": "#\/definitions\/columnMediumtext" + "$ref": "#\/definitions\/file" } } }, "deprecated": false, "x-appwrite": { - "method": "createMediumtextColumn", - "group": "columns", - "weight": 825, + "method": "updateFile", + "group": "files", "cookies": false, "type": "", - "demo": "tablesdb\/create-mediumtext-column.md", + "demo": "storage\/update-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.write", "platforms": [ "console", + "client", "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\/storage\/update-file.md", "auth": { "Project": [] } @@ -62328,24 +59652,26 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "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).", + "name": "fileId", + "description": "File ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<FILE_ID>", "in": "path" }, { @@ -62354,93 +59680,60 @@ "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": { + "name": { "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 + "description": "File name.", + "x-example": "<NAME>" }, - "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 + "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\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } } - }, - "required": [ - "key", - "required" - ] + } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext column", - "operationId": "tablesDBUpdateMediumtextColumn", + }, + "delete": { + "summary": "Delete file", + "operationId": "storageDeleteFile", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "tablesDB" + "storage" ], - "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { - "200": { - "description": "ColumnMediumtext", - "schema": { - "$ref": "#\/definitions\/columnMediumtext" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateMediumtextColumn", - "group": "columns", - "weight": 826, + "method": "deleteFile", + "group": "files", "cookies": false, "type": "", - "demo": "tablesdb\/update-mediumtext-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.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\/tablesdb\/update-mediumtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", "auth": { "Project": [] } @@ -62448,115 +59741,70 @@ "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": "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 ID.", "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 - }, - "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" - ], + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { + "get": { + "summary": "Get file for download", + "operationId": "storageGetFileDownload", + "consumes": [], "produces": [ - "application\/json" + "*\/*" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Create a geometric point column.", + "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": "ColumnPoint", + "200": { + "description": "File", "schema": { - "$ref": "#\/definitions\/columnPoint" + "type": "file" } } }, "deprecated": false, "x-appwrite": { - "method": "createPointColumn", - "group": "columns", - "weight": 811, + "method": "getFileDownload", + "group": "files", "cookies": false, - "type": "", - "demo": "tablesdb\/create-point-column.md", + "type": "location", + "demo": "storage\/get-file-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.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\/storage\/get-file-download.md", "auth": { "Project": [] } @@ -62564,107 +59812,79 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database 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": "<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\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "fileId", + "description": "File ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<FILE_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": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "<TOKEN>", + "default": "", + "in": "query" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { - "patch": { - "summary": "Update point column", - "operationId": "tablesDBUpdatePointColumn", - "consumes": [ - "application\/json" - ], + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", + "consumes": [], "produces": [ - "application\/json" + "image\/*" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Update a point column. Changing the `default` value will not update already existing rows.", + "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": "ColumnPoint", + "description": "Image", "schema": { - "$ref": "#\/definitions\/columnPoint" + "type": "file" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePointColumn", - "group": "columns", - "weight": 812, + "method": "getFilePreview", + "group": "files", "cookies": false, - "type": "", - "demo": "tablesdb\/update-point-column.md", + "type": "location", + "demo": "storage\/get-file-preview.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.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\/storage\/get-file-preview.md", "auth": { "Project": [] } @@ -62672,114 +59892,204 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "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. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "fileId", + "description": "File ID", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<FILE_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "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", - "in": "path" + "x-example": "center", + "enum": [ + "center", + "top-left", + "top", + "top-right", + "left", + "right", + "bottom-left", + "bottom", + "bottom-right" + ], + "x-enum-name": "ImageGravity", + "default": "center", + "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" - ] - } - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { - "post": { - "summary": "Create polygon column", - "operationId": "tablesDBCreatePolygonColumn", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "tablesDB" - ], - "description": "Create a geometric polygon column.", - "responses": { - "202": { - "description": "ColumnPolygon", - "schema": { - "$ref": "#\/definitions\/columnPolygon" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createPolygonColumn", - "group": "columns", - "weight": 813, - "cookies": false, - "type": "", - "demo": "tablesdb\/create-polygon-column.md", + "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", + "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", + "cookies": false, + "type": "location", + "demo": "storage\/get-file-view.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.read", "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\/storage\/get-file-view.md", "auth": { "Project": [] } @@ -62787,368 +60097,226 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "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. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "fileId", + "description": "File ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<FILE_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, 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" - ] - } + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "<TOKEN>", + "default": "", + "in": "query" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { - "patch": { - "summary": "Update polygon column", - "operationId": "tablesDBUpdatePolygonColumn", - "consumes": [ - "application\/json" - ], + "\/storage\/usage": { + "get": { + "summary": "Get storage usage stats", + "operationId": "storageGetUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", + "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": "ColumnPolygon", + "description": "StorageUsage", "schema": { - "$ref": "#\/definitions\/columnPolygon" + "$ref": "#\/definitions\/usageStorage" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePolygonColumn", - "group": "columns", - "weight": 814, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "tablesdb\/update-polygon-column.md", + "demo": "storage\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.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\/storage\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "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 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, + "name": "range", + "description": "Date range.", + "required": false, "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, 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" - ] - } + "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\/relationship": { - "post": { - "summary": "Create relationship column", - "operationId": "tablesDBCreateRelationshipColumn", - "consumes": [ - "application\/json" - ], + "\/storage\/{bucketId}\/usage": { + "get": { + "summary": "Get bucket usage stats", + "operationId": "storageGetBucketUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "storage" ], - "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "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": { - "202": { - "description": "ColumnRelationship", + "200": { + "description": "UsageBuckets", "schema": { - "$ref": "#\/definitions\/columnRelationship" + "$ref": "#\/definitions\/usageBuckets" } } }, "deprecated": false, "x-appwrite": { - "method": "createRelationshipColumn", - "group": "columns", - "weight": 815, + "method": "getBucketUsage", + "group": null, "cookies": false, "type": "", - "demo": "tablesdb\/create-relationship-column.md", + "demo": "storage\/get-bucket-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "files.read", "platforms": [ - "console", - "server" + "console" ], "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\/storage\/get-bucket-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "bucketId", + "description": "Bucket ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID.", - "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": { - "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" - ] - } + "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\/string": { - "post": { - "summary": "Create string column", - "operationId": "tablesDBCreateStringColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb": { + "get": { + "summary": "List databases", + "operationId": "tablesDBList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create a string column.\n", + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", "responses": { - "202": { - "description": "ColumnString", + "200": { + "description": "Databases List", "schema": { - "$ref": "#\/definitions\/columnString" + "$ref": "#\/definitions\/databaseList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createStringColumn", - "group": "columns", - "weight": 817, + "method": "list", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/create-string-column.md", + "demo": "tablesdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "databases.read", "platforms": [ "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\/list.md", "auth": { "Project": [] } @@ -63161,80 +60329,40 @@ ], "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 columns: name", + "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 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", + }, + "post": { + "summary": "Create database", + "operationId": "tablesDBCreate", "consumes": [ "application\/json" ], @@ -63244,43 +60372,33 @@ "tags": [ "tablesDB" ], - "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", + "description": "Create a new Database.\n", "responses": { - "200": { - "description": "ColumnString", + "201": { + "description": "Database", "schema": { - "$ref": "#\/definitions\/columnString" + "$ref": "#\/definitions\/database" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateStringColumn", - "group": "columns", - "weight": 818, + "method": "create", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/update-string-column.md", + "demo": "tablesdb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "databases.write", "platforms": [ "console", "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\/create.md", "auth": { "Project": [] } @@ -63292,119 +60410,80 @@ } ], "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": { + "databaseId": { "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 + "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>" }, - "newKey": { + "name": { "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true + "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.", + "default": true, + "x-example": false } }, "required": [ - "required", - "default" + "databaseId", + "name" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { - "post": { - "summary": "Create text column", - "operationId": "tablesDBCreateTextColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "tablesDBListTransactions", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create a text column.\n", + "description": "List transactions across all databases.", "responses": { - "202": { - "description": "ColumnText", + "200": { + "description": "Transaction List", "schema": { - "$ref": "#\/definitions\/columnText" + "$ref": "#\/definitions\/transactionList" } } }, "deprecated": false, "x-appwrite": { - "method": "createTextColumn", - "group": "columns", - "weight": 823, + "method": "listTransactions", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/create-text-column.md", + "demo": "tablesdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "documents.read", + "rows.read" ], "platforms": [ "console", - "server" + "server", + "client" ], "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\/list-transactions.md", "auth": { "Project": [] } @@ -63412,77 +60491,29 @@ "security": [ { "Project": [], - "Key": [] + "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).", - "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": "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" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { - "patch": { - "summary": "Update text column", - "operationId": "tablesDBUpdateTextColumn", + }, + "post": { + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", "consumes": [ "application\/json" ], @@ -63492,39 +60523,37 @@ "tags": [ "tablesDB" ], - "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", + "description": "Create a new transaction.", "responses": { - "200": { - "description": "ColumnText", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/columnText" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTextColumn", - "group": "columns", - "weight": 824, + "method": "createTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/update-text-column.md", + "demo": "tablesdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "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-text-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", "auth": { "Project": [] } @@ -63532,115 +60561,73 @@ "security": [ { "Project": [], - "Key": [] + "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).", - "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 + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" } - }, - "required": [ - "required", - "default" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { - "post": { - "summary": "Create URL column", - "operationId": "tablesDBCreateUrlColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create a URL column.\n", + "description": "Get a transaction by its unique ID.", "responses": { - "202": { - "description": "ColumnURL", + "200": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/columnUrl" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "createUrlColumn", - "group": "columns", - "weight": 819, + "method": "getTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/create-url-column.md", + "demo": "tablesdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "documents.read", + "rows.read" ], "platforms": [ "console", - "server" + "server", + "client" ], "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\/get-transaction.md", "auth": { "Project": [] } @@ -63648,72 +60635,25 @@ "security": [ { "Project": [], - "Key": [] + "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": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TRANSACTION_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": "https:\/\/example.com", - "format": "url", - "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}": { + }, "patch": { - "summary": "Update URL column", - "operationId": "tablesDBUpdateUrlColumn", + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", "consumes": [ "application\/json" ], @@ -63723,39 +60663,37 @@ "tags": [ "tablesDB" ], - "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { "200": { - "description": "ColumnURL", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/columnUrl" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "updateUrlColumn", - "group": "columns", - "weight": 820, + "method": "updateTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/update-url-column.md", + "demo": "tablesdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "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-url-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", "auth": { "Project": [] } @@ -63763,31 +60701,18 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "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": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -63796,83 +60721,61 @@ "schema": { "type": "object", "properties": { - "required": { + "commit": { "type": "boolean", - "description": "Is column required?", - "default": null, + "description": "Commit transaction?", + "default": false, "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 + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false } - }, - "required": [ - "required", - "default" - ] + } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { - "post": { - "summary": "Create varchar column", - "operationId": "tablesDBCreateVarcharColumn", + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "tablesDB" ], - "description": "Create a varchar column.\n", + "description": "Delete a transaction by its unique ID.", "responses": { - "202": { - "description": "ColumnVarchar", - "schema": { - "$ref": "#\/definitions\/columnVarchar" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createVarcharColumn", - "group": "columns", - "weight": 821, + "method": "deleteTransaction", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/create-varchar-column.md", + "demo": "tablesdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "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-varchar-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", "auth": { "Project": [] } @@ -63880,85 +60783,27 @@ "security": [ { "Project": [], - "Key": [] + "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": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TRANSACTION_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 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" - ] - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { - "patch": { - "summary": "Update varchar column", - "operationId": "tablesDBUpdateVarcharColumn", + "\/tablesdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", "consumes": [ "application\/json" ], @@ -63968,39 +60813,37 @@ "tags": [ "tablesDB" ], - "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", + "description": "Create multiple operations in a single transaction.", "responses": { - "200": { - "description": "ColumnVarchar", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/columnVarchar" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVarcharColumn", - "group": "columns", - "weight": 822, + "method": "createOperations", + "group": "transactions", "cookies": false, "type": "", - "demo": "tablesdb\/update-varchar-column.md", + "demo": "tablesdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" + "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-varchar-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", "auth": { "Project": [] } @@ -64008,31 +60851,18 @@ "security": [ { "Project": [], - "Key": [] + "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).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -64041,48 +60871,25 @@ "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 + "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": [ - "required", - "default" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { + "\/tablesdb\/usage": { "get": { - "summary": "Get column", - "operationId": "tablesDBGetColumn", + "summary": "Get TablesDB usage stats", + "operationId": "tablesDBListUsage", "consumes": [], "produces": [ "application\/json" @@ -64090,197 +60897,129 @@ "tags": [ "tablesDB" ], - "description": "Get column by ID.", + "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": { "200": { - "description": "ColumnBoolean, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnString", + "description": "UsageDatabases", "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" - } - ], - "x-discriminator": { - "propertyName": "type", - "mapping": { - "boolean": "#\/definitions\/columnBoolean", - "integer": "#\/definitions\/columnInteger", - "double": "#\/definitions\/columnFloat", - "string": "#\/definitions\/columnString", - "datetime": "#\/definitions\/columnDatetime", - "relationship": "#\/definitions\/columnRelationship" - }, - "x-propertyNames": [ - "type", - "format" - ], - "x-mapping": { - "#\/definitions\/columnBoolean": { - "type": "boolean" - }, - "#\/definitions\/columnInteger": { - "type": "integer" - }, - "#\/definitions\/columnFloat": { - "type": "double" - }, - "#\/definitions\/columnEmail": { - "type": "string", - "format": "email" - }, - "#\/definitions\/columnEnum": { - "type": "string", - "format": "enum" - }, - "#\/definitions\/columnUrl": { - "type": "string", - "format": "url" - }, - "#\/definitions\/columnIp": { - "type": "string", - "format": "ip" - }, - "#\/definitions\/columnDatetime": { - "type": "datetime" - }, - "#\/definitions\/columnRelationship": { - "type": "relationship" - }, - "#\/definitions\/columnString": { - "type": "string" - } - } - } + "$ref": "#\/definitions\/usageDatabases" } } }, "deprecated": false, "x-appwrite": { - "method": "getColumn", - "group": "columns", - "weight": 790, + "method": "listUsage", + "group": null, "cookies": false, "type": "", - "demo": "tablesdb\/get-column.md", + "demo": "tablesdb\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.read", - "collections.read", - "columns.read", - "attributes.read" + "collections.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\/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": [] + "Project": [] } ], "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, + "name": "range", + "description": "Date range.", + "required": false, "type": "string", - "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" } ] - }, - "delete": { - "summary": "Delete column", - "operationId": "tablesDBDeleteColumn", - "consumes": [ + } + }, + "\/tablesdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "tablesDBGet", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ "tablesDB" ], - "description": "Deletes a column.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Database", + "schema": { + "$ref": "#\/definitions\/database" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteColumn", - "group": "columns", - "weight": 791, + "method": "get", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/delete-column.md", + "demo": "tablesdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "databases.read", "platforms": [ "console", "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\/tablesdb\/get.md", "auth": { "Project": [] } @@ -64299,29 +61038,12 @@ "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" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}\/relationship": { - "patch": { - "summary": "Update relationship column", - "operationId": "tablesDBUpdateRelationshipColumn", + }, + "put": { + "summary": "Update database", + "operationId": "tablesDBUpdate", "consumes": [ "application\/json" ], @@ -64331,39 +61053,33 @@ "tags": [ "tablesDB" ], - "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "description": "Update a database by its unique ID.", "responses": { "200": { - "description": "ColumnRelationship", + "description": "Database", "schema": { - "$ref": "#\/definitions\/columnRelationship" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRelationshipColumn", - "group": "columns", - "weight": 816, + "method": "update", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/update-relationship-column.md", + "demo": "tablesdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write", - "columns.write", - "attributes.write" - ], + "scope": "databases.write", "platforms": [ "console", "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\/tablesdb\/update.md", "auth": { "Project": [] } @@ -64383,97 +61099,62 @@ "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": { - "onDelete": { + "name": { "type": "string", - "description": "Constraints option", - "default": null, - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [], - "x-nullable": true + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true + "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 } } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "tablesDBListIndexes", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete database", + "operationId": "tablesDBDelete", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ "tablesDB" ], - "description": "List indexes on the table.", + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "responses": { - "200": { - "description": "Column Indexes List", - "schema": { - "$ref": "#\/definitions\/columnIndexList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listIndexes", - "group": "indexes", - "weight": 832, + "method": "delete", + "group": "tablesdb", "cookies": false, "type": "", - "demo": "tablesdb\/list-indexes.md", + "demo": "tablesdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read", - "indexes.read" - ], + "scope": "databases.write", "platforms": [ "console", "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\/tablesdb\/delete.md", "auth": { "Project": [] } @@ -64492,18 +61173,73 @@ "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.", + "responses": { + "200": { + "description": "Tables List", + "schema": { + "$ref": "#\/definitions\/tableList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTables", + "group": "tables", + "cookies": false, + "type": "", + "demo": "tablesdb\/list-tables.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-tables.md", + "auth": { + "Project": [] + } + }, + "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).", + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TABLE_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 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 columns: name, enabled, rowSecurity", "required": false, "type": "array", "collectionFormat": "multi", @@ -64513,6 +61249,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.", @@ -64525,8 +61270,8 @@ ] }, "post": { - "summary": "Create index", - "operationId": "tablesDBCreateIndex", + "summary": "Create table", + "operationId": "tablesDBCreateTable", "consumes": [ "application\/json" ], @@ -64536,30 +61281,28 @@ "tags": [ "tablesDB" ], - "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": "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": { - "202": { - "description": "Index", + "201": { + "description": "Table", "schema": { - "$ref": "#\/definitions\/columnIndex" + "$ref": "#\/definitions\/table" } } }, "deprecated": false, "x-appwrite": { - "method": "createIndex", - "group": "indexes", - "weight": 829, + "method": "createTable", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/create-index.md", + "demo": "tablesdb\/create-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.write", - "collections.write", - "indexes.write" + "collections.write" ], "platforms": [ "console", @@ -64567,7 +61310,7 @@ ], "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\/tablesdb\/create-table.md", "auth": { "Project": [] } @@ -64587,88 +61330,75 @@ "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": { + "tableId": { "type": "string", - "description": "Index Key.", - "default": null, - "x-example": null + "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>" }, - "type": { + "name": { "type": "string", - "description": "Index type.", - "default": null, - "x-example": "key", - "enum": [ - "key", - "fulltext", - "unique", - "spatial" - ], - "x-enum-name": "TablesDBIndexType", - "x-enum-keys": [] + "description": "Table name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "columns": { + "permissions": { "type": "array", - "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", - "default": null, - "x-example": null, + "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\")\"]", + "x-nullable": true, "items": { "type": "string" } }, - "orders": { + "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 index orders. Maximum of 100 orders are allowed.", + "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": "string", - "enum": [ - "asc", - "desc" - ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] + "type": "object" } }, - "lengths": { + "indexes": { "type": "array", - "description": "Length of index. Maximum of 100", + "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": "integer" + "type": "object" } } }, "required": [ - "key", - "type", - "columns" + "tableId", + "name" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}": { "get": { - "summary": "Get index", - "operationId": "tablesDBGetIndex", + "summary": "Get table", + "operationId": "tablesDBGetTable", "consumes": [], "produces": [ "application\/json" @@ -64676,30 +61406,28 @@ "tags": [ "tablesDB" ], - "description": "Get index by ID.", + "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", "responses": { "200": { - "description": "Index", + "description": "Table", "schema": { - "$ref": "#\/definitions\/columnIndex" + "$ref": "#\/definitions\/table" } } }, "deprecated": false, "x-appwrite": { - "method": "getIndex", - "group": "indexes", - "weight": 830, + "method": "getTable", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/get-index.md", + "demo": "tablesdb\/get-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.read", - "collections.read", - "indexes.read" + "collections.read" ], "platforms": [ "console", @@ -64707,7 +61435,7 @@ ], "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\/tablesdb\/get-table.md", "auth": { "Project": [] } @@ -64729,52 +61457,48 @@ }, { "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": "Index Key.", - "required": true, - "type": "string", - "in": "path" } ] }, - "delete": { - "summary": "Delete index", - "operationId": "tablesDBDeleteIndex", + "put": { + "summary": "Update table", + "operationId": "tablesDBUpdateTable", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "tablesDB" ], - "description": "Delete an index.", + "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": "deleteIndex", - "group": "indexes", - "weight": 831, + "method": "updateTable", + "group": "tables", "cookies": false, "type": "", - "demo": "tablesdb\/delete-index.md", + "demo": "tablesdb\/update-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ "tables.write", - "collections.write", - "indexes.write" + "collections.write" ], "platforms": [ "console", @@ -64782,7 +61506,7 @@ ], "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\/tablesdb\/update-table.md", "auth": { "Project": [] } @@ -64804,70 +61528,100 @@ }, { "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": "Index 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.", + "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\")\"]", + "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 + }, + "purge": { + "type": "boolean", + "description": "When true, purge all cached list responses for this table as part of the update. Use this to force readers to see fresh data immediately instead of waiting for the cache TTL to expire.", + "default": false, + "x-example": false + } + } + } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/logs": { - "get": { - "summary": "List table logs", - "operationId": "tablesDBListTableLogs", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete table", + "operationId": "tablesDBDeleteTable", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ "tablesDB" ], - "description": "Get the table activity logs list by its unique ID.", + "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { - "200": { - "description": "Logs List", - "schema": { - "$ref": "#\/definitions\/logList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listTableLogs", + "method": "deleteTable", "group": "tables", - "weight": 788, "cookies": false, "type": "", - "demo": "tablesdb\/list-table-logs.md", + "demo": "tablesdb\/delete-table.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\/get-table-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -64886,26 +61640,14 @@ "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" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { "get": { - "summary": "List rows", - "operationId": "tablesDBListRows", + "summary": "List columns", + "operationId": "tablesDBListColumns", "consumes": [], "produces": [ "application\/json" @@ -64913,38 +61655,38 @@ "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.", + "description": "List columns in the table.", "responses": { "200": { - "description": "Rows List", + "description": "Columns List", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/columnList" } } }, "deprecated": false, "x-appwrite": { - "method": "listRows", - "group": "rows", - "weight": 920, + "method": "listColumns", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/list-rows.md", + "demo": "tablesdb\/list-columns.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.read", - "documents.read" + "tables.read", + "collections.read", + "columns.read", + "attributes.read" ], "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\/tablesdb\/list-columns.md", "auth": { "Project": [] } @@ -64952,9 +61694,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -64968,7 +61708,7 @@ }, { "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).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -64976,7 +61716,7 @@ }, { "name": "queries", - "description": "Array of query strings generated using the Query 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 columns: key, type, size, required, array, status, error", "required": false, "type": "array", "collectionFormat": "multi", @@ -64986,14 +61726,6 @@ "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.", @@ -65002,22 +61734,14 @@ "x-example": false, "default": true, "in": "query" - }, - { - "name": "ttl", - "description": "TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, table, schema version (columns and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; row writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint": { "post": { - "summary": "Create row", - "operationId": "tablesDBCreateRow", + "summary": "Create bigint column", + "operationId": "tablesDBCreateBigIntColumn", "consumes": [ "application\/json" ], @@ -65027,99 +61751,38 @@ "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.", + "description": "Create a bigint column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "201": { - "description": "Row", + "202": { + "description": "ColumnBigInt", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/columnBigint" } } }, "deprecated": false, "x-appwrite": { - "method": "createRow", - "group": "rows", - "weight": 833, + "method": "createBigIntColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/create-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/create-big-int-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.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 - }, - { - "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\/tablesdb\/create-bigint-column.md", "auth": { "Project": [] } @@ -65127,9 +61790,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -65143,7 +61804,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). Make sure to define columns before creating rows.", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -65155,52 +61816,57 @@ "schema": { "type": "object", "properties": { - "rowId": { + "key": { "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}" + "description": "Column Key.", + "x-example": null }, - "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" - } + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "rows": { - "type": "array", - "description": "Array of rows data as JSON objects.", - "default": [], + "min": { + "type": "integer", + "description": "Minimum value", "x-example": null, - "items": { - "type": "object" - } + "format": "int64", + "x-nullable": true }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "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?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] - }, - "put": { - "summary": "Upsert rows", - "operationId": "tablesDBUpsertRows", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/bigint\/{key}": { + "patch": { + "summary": "Update bigint column", + "operationId": "tablesDBUpdateBigIntColumn", "consumes": [ "application\/json" ], @@ -65210,29 +61876,30 @@ "tags": [ "tablesDB" ], - "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": "Update a bigint column. Changing the `default` value will not update already existing rows.\n", "responses": { - "201": { - "description": "Rows List", + "200": { + "description": "ColumnBigInt", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/columnBigint" } } }, "deprecated": false, "x-appwrite": { - "method": "upsertRows", - "group": "rows", - "weight": 838, + "method": "updateBigIntColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/upsert-rows.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/update-big-int-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -65240,37 +61907,7 @@ ], "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\/tablesdb\/update-bigint-column.md", "auth": { "Project": [] } @@ -65298,39 +61935,65 @@ "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": { - "rows": { - "type": "array", - "description": "Array of row data as JSON objects. May contain partial rows.", - "default": null, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "min": { + "type": "integer", + "description": "Minimum value", "x-example": null, - "items": { - "type": "object" - } + "format": "int64", + "x-nullable": true }, - "transactionId": { + "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": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "description": "New Column Key.", + "x-example": null, "x-nullable": true } }, "required": [ - "rows" + "required", + "default" ] } } ] - }, - "patch": { - "summary": "Update rows", - "operationId": "tablesDBUpdateRows", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "post": { + "summary": "Create boolean column", + "operationId": "tablesDBCreateBooleanColumn", "consumes": [ "application\/json" ], @@ -65340,29 +62003,30 @@ "tags": [ "tablesDB" ], - "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 boolean column.\n", "responses": { - "200": { - "description": "Rows List", + "202": { + "description": "ColumnBoolean", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/columnBoolean" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRows", - "group": "rows", - "weight": 836, + "method": "createBooleanColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-rows.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/create-boolean-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -65370,7 +62034,7 @@ ], "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\/tablesdb\/create-boolean-column.md", "auth": { "Project": [] } @@ -65392,7 +62056,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>", @@ -65404,36 +62068,42 @@ "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}" + "key": { + "type": "string", + "description": "Column Key.", + "x-example": 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, - "items": { - "type": "string" - } + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "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?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] - }, - "delete": { - "summary": "Delete rows", - "operationId": "tablesDBDeleteRows", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "patch": { + "summary": "Update boolean column", + "operationId": "tablesDBUpdateBooleanColumn", "consumes": [ "application\/json" ], @@ -65443,29 +62113,30 @@ "tags": [ "tablesDB" ], - "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", + "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Rows List", + "description": "ColumnBoolean", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/columnBoolean" } } }, "deprecated": false, "x-appwrite": { - "method": "deleteRows", - "group": "rows", - "weight": 840, + "method": "updateBooleanColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/delete-rows.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/update-boolean-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", @@ -65473,7 +62144,7 @@ ], "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\/tablesdb\/update-boolean-column.md", "auth": { "Project": [] } @@ -65501,77 +62172,91 @@ "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": { - "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" - } + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "transactionId": { + "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": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "description": "New Column Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { - "get": { - "summary": "Get row", - "operationId": "tablesDBGetRow", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "post": { + "summary": "Create datetime column", + "operationId": "tablesDBCreateDatetimeColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "description": "Create a date time column according to the ISO 8601 standard.", "responses": { - "200": { - "description": "Row", + "202": { + "description": "ColumnDatetime", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/columnDatetime" } } }, "deprecated": false, "x-appwrite": { - "method": "getRow", - "group": "rows", - "weight": 834, + "method": "createDatetimeColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/get-row.md", + "demo": "tablesdb\/create-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.read", - "documents.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-datetime-column.md", "auth": { "Project": [] } @@ -65579,9 +62264,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -65595,45 +62278,55 @@ }, { "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": "queries", - "description": "Array of query strings generated using the Query 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": { + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } } ] - }, - "put": { - "summary": "Upsert a row", - "operationId": "tablesDBUpsertRow", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "patch": { + "summary": "Update dateTime column", + "operationId": "tablesDBUpdateDatetimeColumn", "consumes": [ "application\/json" ], @@ -65643,70 +62336,38 @@ "tags": [ "tablesDB" ], - "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": "Update a date time column. Changing the `default` value will not update already existing rows.", "responses": { - "201": { - "description": "Row", + "200": { + "description": "ColumnDatetime", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/columnDatetime" } } }, "deprecated": false, "x-appwrite": { - "method": "upsertRow", - "group": "rows", - "weight": 837, + "method": "updateDatetimeColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/upsert-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/update-datetime-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-datetime-column.md", "auth": { "Project": [] } @@ -65714,9 +62375,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -65737,11 +62396,10 @@ "in": "path" }, { - "name": "rowId", - "description": "Row ID.", + "name": "key", + "description": "Column Key.", "required": true, "type": "string", - "x-example": "<ROW_ID>", "in": "path" }, { @@ -65750,37 +62408,38 @@ "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" - } + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "transactionId": { + "default": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] } } ] - }, - "patch": { - "summary": "Update row", - "operationId": "tablesDBUpdateRow", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { + "post": { + "summary": "Create email column", + "operationId": "tablesDBCreateEmailColumn", "consumes": [ "application\/json" ], @@ -65790,38 +62449,38 @@ "tags": [ "tablesDB" ], - "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Create an email column.\n", "responses": { - "200": { - "description": "Row", + "202": { + "description": "ColumnEmail", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/columnEmail" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRow", - "group": "rows", - "weight": 835, + "method": "createEmailColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/update-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/create-email-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-email-column.md", "auth": { "Project": [] } @@ -65829,9 +62488,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -65851,87 +62508,90 @@ "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}" + "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).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "transactionId": { + "default": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "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?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] - }, - "delete": { - "summary": "Delete row", - "operationId": "tablesDBDeleteRow", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "patch": { + "summary": "Update email column", + "operationId": "tablesDBUpdateEmailColumn", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "tablesDB" ], - "description": "Delete a row by its unique ID.", + "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnEmail", + "schema": { + "$ref": "#\/definitions\/columnEmail" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteRow", - "group": "rows", - "weight": 839, + "method": "updateEmailColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/delete-row.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "demo": "tablesdb\/update-email-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.write" ], "platforms": [ "console", - "client", "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\/tablesdb\/update-email-column.md", "auth": { "Project": [] } @@ -65939,9 +62599,7 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -65955,18 +62613,17 @@ }, { "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.", + "name": "key", + "description": "Column Key.", "required": true, "type": "string", - "x-example": "<ROW_ID>", "in": "path" }, { @@ -65975,67 +62632,87 @@ "schema": { "type": "object", "properties": { - "transactionId": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "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" + ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/logs": { - "get": { - "summary": "List row logs", - "operationId": "tablesDBListRowLogs", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "post": { + "summary": "Create enum column", + "operationId": "tablesDBCreateEnumColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get the row activity logs list 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": "Logs List", + "202": { + "description": "ColumnEnum", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/columnEnum" } } }, "deprecated": false, "x-appwrite": { - "method": "listRowLogs", - "group": "logs", - "weight": 842, + "method": "createEnumColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/list-row-logs.md", + "demo": "tablesdb\/create-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.read", - "documents.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-enum-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -66056,32 +62733,56 @@ "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). 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.", + "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?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { "patch": { - "summary": "Decrement row column", - "operationId": "tablesDBDecrementRowColumn", + "summary": "Update enum column", + "operationId": "tablesDBUpdateEnumColumn", "consumes": [ "application\/json" ], @@ -66091,38 +62792,38 @@ "tags": [ "tablesDB" ], - "description": "Decrement a specific column of a row by a given value.", + "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Row", + "description": "ColumnEnum", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/columnEnum" } } }, "deprecated": false, "x-appwrite": { - "method": "decrementRowColumn", - "group": "rows", - "weight": 844, + "method": "updateEnumColumn", + "group": "columns", "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}", + "demo": "tablesdb\/update-enum-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-enum-column.md", "auth": { "Project": [] } @@ -66130,8 +62831,6 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], @@ -66153,16 +62852,8 @@ "in": "path" }, { - "name": "rowId", - "description": "Row ID.", - "required": true, - "type": "string", - "x-example": "<ROW_ID>", - "in": "path" - }, - { - "name": "column", - "description": "Column key.", + "name": "key", + "description": "Column Key.", "required": true, "type": "string", "in": "path" @@ -66173,38 +62864,46 @@ "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "default": 1, + "elements": { + "type": "array", + "description": "Updated list of enum values.", "x-example": null, - "format": "float" + "items": { + "type": "string" + } }, - "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", + "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 }, - "transactionId": { + "newKey": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "description": "New Column Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "elements", + "required", + "default" + ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { - "patch": { - "summary": "Increment row column", - "operationId": "tablesDBIncrementRowColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { + "post": { + "summary": "Create float column", + "operationId": "tablesDBCreateFloatColumn", "consumes": [ "application\/json" ], @@ -66214,38 +62913,38 @@ "tags": [ "tablesDB" ], - "description": "Increment a specific column of a row by a given value.", + "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "200": { - "description": "Row", + "202": { + "description": "ColumnFloat", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/columnFloat" } } }, "deprecated": false, "x-appwrite": { - "method": "incrementRowColumn", - "group": "rows", - "weight": 843, + "method": "createFloatColumn", + "group": "columns", "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}", + "demo": "tablesdb\/create-float-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", "scope": [ - "rows.write", - "documents.write" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-float-column.md", "auth": { "Project": [] } @@ -66253,8 +62952,6 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], @@ -66275,104 +62972,113 @@ "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": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "min": { "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "default": 1, + "description": "Minimum value", "x-example": null, - "format": "float" + "format": "float", + "x-nullable": true }, "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, + "description": "Maximum value", "x-example": null, "format": "float", "x-nullable": true }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", + "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?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/usage": { - "get": { - "summary": "Get table usage stats", - "operationId": "tablesDBGetTableUsage", - "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 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": "Update a float column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "UsageTable", + "description": "ColumnFloat", "schema": { - "$ref": "#\/definitions\/usageTable" + "$ref": "#\/definitions\/columnFloat" } } }, "deprecated": false, "x-appwrite": { - "method": "getTableUsage", - "group": null, - "weight": 789, + "method": "updateFloatColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/get-table-usage.md", + "demo": "tablesdb\/update-float-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-float-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] - } + "Project": [], + "Key": [] + } ], "parameters": [ { @@ -66383,26 +63089,6 @@ "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": "tableId", "description": "Table ID.", @@ -66410,84 +63096,115 @@ "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?", + "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}\/usage": { - "get": { - "summary": "Get TablesDB usage stats", - "operationId": "tablesDBGetUsage", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "post": { + "summary": "Create integer column", + "operationId": "tablesDBCreateIntegerColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "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": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "200": { - "description": "UsageDatabase", + "202": { + "description": "ColumnInteger", "schema": { - "$ref": "#\/definitions\/usageDatabase" + "$ref": "#\/definitions\/columnInteger" } } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 781, + "method": "createIntegerColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tablesdb\/get-usage.md", + "demo": "tablesdb\/create-integer-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-integer-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -66500,68 +63217,111 @@ "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" + }, + { + "name": "payload", + "in": "body", + "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?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } } ] } }, - "\/teams": { - "get": { - "summary": "List teams", - "operationId": "teamsList", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "patch": { + "summary": "Update integer column", + "operationId": "tablesDBUpdateIntegerColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "teams" + "tablesDB" ], - "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 an integer column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Teams List", + "description": "ColumnInteger", "schema": { - "$ref": "#\/definitions\/teamList" + "$ref": "#\/definitions\/columnInteger" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "teams", - "weight": 531, + "method": "updateIntegerColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/list.md", + "demo": "tablesdb\/update-integer-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], "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\/tablesdb\/update-integer-column.md", "auth": { "Project": [] } @@ -66569,47 +63329,85 @@ "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, - "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.", + "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?", + "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 team", - "operationId": "teamsCreate", + "summary": "Create IP address column", + "operationId": "tablesDBCreateIpColumn", "consumes": [ "application\/json" ], @@ -66617,37 +63415,40 @@ "application\/json" ], "tags": [ - "teams" + "tablesDB" ], - "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 IP address column.\n", "responses": { - "201": { - "description": "Team", + "202": { + "description": "ColumnIP", "schema": { - "$ref": "#\/definitions\/team" + "$ref": "#\/definitions\/columnIp" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "teams", - "weight": 529, + "method": "createIpColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/create.md", + "demo": "tablesdb\/create-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-ip-column.md", "auth": { "Project": [] } @@ -66655,91 +63456,109 @@ "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": "payload", "in": "body", "schema": { "type": "object", "properties": { - "teamId": { + "key": { "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>" + "description": "Column Key.", + "x-example": null }, - "name": { - "type": "string", - "description": "Team name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "required": { + "type": "boolean", + "description": "Is column required?", + "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.", - "default": [ - "owner" - ], + "default": { + "type": "string", + "description": "Default value. Cannot be set when column is required.", "x-example": null, - "items": { - "type": "string" - } + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false } }, "required": [ - "teamId", - "name" + "key", + "required" ] } } ] } }, - "\/teams\/{teamId}": { - "get": { - "summary": "Get team", - "operationId": "teamsGet", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "patch": { + "summary": "Update IP address column", + "operationId": "tablesDBUpdateIpColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "teams" + "tablesDB" ], - "description": "Get a team by its ID. All team members have read access for this resource.", + "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Team", + "description": "ColumnIP", "schema": { - "$ref": "#\/definitions\/team" + "$ref": "#\/definitions\/columnIp" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "teams", - "weight": 530, + "method": "updateIpColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/get.md", + "demo": "tablesdb\/update-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-ip-column.md", "auth": { "Project": [] } @@ -66747,63 +63566,111 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "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" - } - ] - }, - "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", + }, + { + "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": { - "$ref": "#\/definitions\/team" + "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", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "tablesDB" + ], + "description": "Create a geometric line column.", + "responses": { + "202": { + "description": "ColumnLine", + "schema": { + "$ref": "#\/definitions\/columnLine" } } }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "teams", - "weight": 533, + "method": "createLineColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/update-name.md", + "demo": "tablesdb\/create-line-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-line-column.md", "auth": { "Project": [] } @@ -66811,18 +63678,24 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "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": "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" }, { @@ -66831,56 +63704,77 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "New team name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "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]]", + "x-nullable": true } }, "required": [ - "name" + "key", + "required" ] } } ] - }, - "delete": { - "summary": "Delete team", - "operationId": "teamsDelete", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { + "patch": { + "summary": "Update line column", + "operationId": "tablesDBUpdateLineColumn", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "teams" + "tablesDB" ], - "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "description": "Update a line column. Changing the `default` value will not update already existing rows.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnLine", + "schema": { + "$ref": "#\/definitions\/columnLine" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "teams", - "weight": 532, + "method": "updateLineColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/delete.md", + "demo": "tablesdb\/update-line-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-line-column.md", "auth": { "Project": [] } @@ -66888,143 +63782,226 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team 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": "<TEAM_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "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]]", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } } ] } }, - "\/teams\/{teamId}\/logs": { - "get": { - "summary": "List team logs", - "operationId": "teamsListLogs", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { + "post": { + "summary": "Create longtext column", + "operationId": "tablesDBCreateLongtextColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "teams" + "tablesDB" ], - "description": "Get the team activity logs list by its unique ID.", + "description": "Create a longtext column.\n", "responses": { - "200": { - "description": "Logs List", + "202": { + "description": "ColumnLongtext", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/columnLongtext" } } }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 542, + "method": "createLongtextColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/list-logs.md", + "demo": "tablesdb\/create-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-longtext-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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": "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": "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": "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.", + "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?", + "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" + ] + } } ] } }, - "\/teams\/{teamId}\/memberships": { - "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "patch": { + "summary": "Update longtext column", + "operationId": "tablesDBUpdateLongtextColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "teams" + "tablesDB" ], - "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 a longtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Memberships List", + "description": "ColumnLongtext", "schema": { - "$ref": "#\/definitions\/membershipList" + "$ref": "#\/definitions\/columnLongtext" } } }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 538, + "method": "updateLongtextColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/list-memberships.md", + "demo": "tablesdb\/update-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-longtext-column.md", "auth": { "Project": [] } @@ -67032,55 +64009,70 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "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": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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": "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?", + "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 team membership", - "operationId": "teamsCreateMembership", + "summary": "Create mediumtext column", + "operationId": "tablesDBCreateMediumtextColumn", "consumes": [ "application\/json" ], @@ -67088,37 +64080,40 @@ "application\/json" ], "tags": [ - "teams" + "tablesDB" ], - "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 mediumtext column.\n", "responses": { - "201": { - "description": "Membership", + "202": { + "description": "ColumnMediumtext", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/columnMediumtext" } } }, "deprecated": false, "x-appwrite": { - "method": "createMembership", - "group": "memberships", - "weight": 536, + "method": "createMediumtextColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/create-membership.md", - "rate-limit": 10, + "demo": "tablesdb\/create-mediumtext-column.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-mediumtext-column.md", "auth": { "Project": [] } @@ -67126,18 +64121,24 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "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": "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" }, { @@ -67146,97 +64147,89 @@ "schema": { "type": "object", "properties": { - "email": { + "key": { "type": "string", - "description": "Email of the new team member.", - "default": "", - "x-example": "email@example.com", - "format": "email" + "description": "Column Key.", + "x-example": null }, - "userId": { - "type": "string", - "description": "ID of the user to be added to a team.", - "default": "", - "x-example": "<USER_ID>" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "phone": { + "default": { "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": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true }, - "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": 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" - }, - "name": { - "type": "string", - "description": "Name of the new team member. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "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": [ - "roles" + "key", + "required" ] } } ] } }, - "\/teams\/{teamId}\/memberships\/{membershipId}": { - "get": { - "summary": "Get team membership", - "operationId": "teamsGetMembership", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext column", + "operationId": "tablesDBUpdateMediumtextColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "teams" + "tablesDB" ], - "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 a mediumtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Membership", + "description": "ColumnMediumtext", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/columnMediumtext" } } }, "deprecated": false, "x-appwrite": { - "method": "getMembership", - "group": "memberships", - "weight": 537, + "method": "updateMediumtextColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/get-membership.md", + "demo": "tablesdb\/update-mediumtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], "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\/tablesdb\/update-mediumtext-column.md", "auth": { "Project": [] } @@ -67244,33 +64237,70 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "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": "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": "<MEMBERSHIP_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "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" + ] + } } ] - }, - "patch": { - "summary": "Update team membership", - "operationId": "teamsUpdateMembership", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { + "post": { + "summary": "Create point column", + "operationId": "tablesDBCreatePointColumn", "consumes": [ "application\/json" ], @@ -67278,37 +64308,40 @@ "application\/json" ], "tags": [ - "teams" + "tablesDB" ], - "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": "Create a geometric point column.", "responses": { - "200": { - "description": "Membership", + "202": { + "description": "ColumnPoint", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/columnPoint" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMembership", - "group": "memberships", - "weight": 539, + "method": "createPointColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/update-membership.md", + "demo": "tablesdb\/create-point-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-point-column.md", "auth": { "Project": [] } @@ -67316,26 +64349,24 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "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": "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": "<MEMBERSHIP_ID>", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -67344,59 +64375,77 @@ "schema": { "type": "object", "properties": { - "roles": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { "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" - } + "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]", + "x-nullable": true } }, "required": [ - "roles" + "key", + "required" ] } } ] - }, - "delete": { - "summary": "Delete team membership", - "operationId": "teamsDeleteMembership", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + "patch": { + "summary": "Update point column", + "operationId": "tablesDBUpdatePointColumn", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "teams" + "tablesDB" ], - "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 a point column. Changing the `default` value will not update already existing rows.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnPoint", + "schema": { + "$ref": "#\/definitions\/columnPoint" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteMembership", - "group": "memberships", - "weight": 1209, + "method": "updatePointColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/delete-membership.md", + "demo": "tablesdb\/update-point-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-point-column.md", "auth": { "Project": [] } @@ -67404,35 +64453,69 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "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": "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": "<MEMBERSHIP_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "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]", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } } ] } }, - "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { - "patch": { - "summary": "Update team membership status", - "operationId": "teamsUpdateMembershipStatus", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { + "post": { + "summary": "Create polygon column", + "operationId": "tablesDBCreatePolygonColumn", "consumes": [ "application\/json" ], @@ -67440,37 +64523,40 @@ "application\/json" ], "tags": [ - "teams" + "tablesDB" ], - "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": "Create a geometric polygon column.", "responses": { - "200": { - "description": "Membership", + "202": { + "description": "ColumnPolygon", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/columnPolygon" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMembershipStatus", - "group": "memberships", - "weight": 541, + "method": "createPolygonColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/update-membership-status.md", + "demo": "tablesdb\/create-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-polygon-column.md", "auth": { "Project": [] } @@ -67478,25 +64564,24 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "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": "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": "<MEMBERSHIP_ID>", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -67505,68 +64590,77 @@ "schema": { "type": "object", "properties": { - "userId": { + "key": { "type": "string", - "description": "User ID.", - "default": null, - "x-example": "<USER_ID>" + "description": "Column Key.", + "x-example": null }, - "secret": { - "type": "string", - "description": "Secret key.", - "default": null, - "x-example": "<SECRET>" + "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]]]", + "x-nullable": true } }, "required": [ - "userId", - "secret" + "key", + "required" ] } } ] } }, - "\/teams\/{teamId}\/prefs": { - "get": { - "summary": "Get team preferences", - "operationId": "teamsGetPrefs", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { + "patch": { + "summary": "Update polygon column", + "operationId": "tablesDBUpdatePolygonColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "teams" + "tablesDB" ], - "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 a polygon column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Preferences", + "description": "ColumnPolygon", "schema": { - "$ref": "#\/definitions\/preferences" + "$ref": "#\/definitions\/columnPolygon" } } }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "teams", - "weight": 534, + "method": "updatePolygonColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/get-prefs.md", + "demo": "tablesdb\/update-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-polygon-column.md", "auth": { "Project": [] } @@ -67574,24 +64668,69 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team 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": "<TEAM_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "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]]]", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } } ] - }, - "put": { - "summary": "Update team preferences", - "operationId": "teamsUpdatePrefs", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { + "post": { + "summary": "Create relationship column", + "operationId": "tablesDBCreateRelationshipColumn", "consumes": [ "application\/json" ], @@ -67599,37 +64738,40 @@ "application\/json" ], "tags": [ - "teams" + "tablesDB" ], - "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": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { - "200": { - "description": "Preferences", + "202": { + "description": "ColumnRelationship", "schema": { - "$ref": "#\/definitions\/preferences" + "$ref": "#\/definitions\/columnRelationship" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "teams", - "weight": 535, + "method": "createRelationshipColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "teams\/update-prefs.md", + "demo": "tablesdb\/create-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/create-relationship-column.md", "auth": { "Project": [] } @@ -67637,17 +64779,24 @@ "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "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": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -67656,59 +64805,112 @@ "schema": { "type": "object", "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "default": {}, - "x-example": "{}" - } - }, - "required": [ - "prefs" - ] - } - } - ] - } - }, - "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { - "get": { - "summary": "List tokens", - "operationId": "tokensList", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "tokens" + "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" + }, + "twoWay": { + "type": "boolean", + "description": "Is Two Way?", + "default": false, + "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", + "default": "restrict", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate" + } + }, + "required": [ + "relatedTableId", + "type" + ] + } + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { + "post": { + "summary": "Create string column", + "operationId": "tablesDBCreateStringColumn", + "consumes": [ + "application\/json" ], - "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "produces": [ + "application\/json" + ], + "tags": [ + "tablesDB" + ], + "description": "Create a string column.\n", "responses": { - "200": { - "description": "Resource Tokens List", + "202": { + "description": "ColumnString", "schema": { - "$ref": "#\/definitions\/resourceTokenList" + "$ref": "#\/definitions\/columnString" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "list", - "group": "files", - "weight": 545, + "method": "createStringColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tokens\/list.md", + "demo": "tablesdb\/create-string-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], "platforms": [ "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" + }, "auth": { "Project": [] } @@ -67721,47 +64923,76 @@ ], "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 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": "<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 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" + "name": "payload", + "in": "body", + "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" + }, + "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?", + "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" + ] + } } ] - }, - "post": { - "summary": "Create file token", - "operationId": "tokensCreateFileToken", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { + "patch": { + "summary": "Update string column", + "operationId": "tablesDBUpdateStringColumn", "consumes": [ "application\/json" ], @@ -67769,35 +65000,44 @@ "application\/json" ], "tags": [ - "tokens" + "tablesDB" ], - "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", "responses": { - "201": { - "description": "ResourceToken", + "200": { + "description": "ColumnString", "schema": { - "$ref": "#\/definitions\/resourceToken" + "$ref": "#\/definitions\/columnString" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createFileToken", - "group": "files", - "weight": 543, + "method": "updateStringColumn", + "group": "columns", "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": "tablesdb\/update-string-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], "platforms": [ "console", "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" + }, "auth": { "Project": [] } @@ -67810,19 +65050,26 @@ ], "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 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": "<FILE_ID>", "in": "path" }, { @@ -67831,58 +65078,85 @@ "schema": { "type": "object", "properties": { - "expire": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { "type": "string", - "description": "Token expiry date", - "default": null, - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "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" + ] } } ] } }, - "\/tokens\/{tokenId}": { - "get": { - "summary": "Get token", - "operationId": "tokensGet", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { + "post": { + "summary": "Create text column", + "operationId": "tablesDBCreateTextColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "tokens" + "tablesDB" ], - "description": "Get a token by its unique ID.", + "description": "Create a text column.\n", "responses": { - "200": { - "description": "ResourceToken", + "202": { + "description": "ColumnText", "schema": { - "$ref": "#\/definitions\/resourceToken" + "$ref": "#\/definitions\/columnText" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "tokens", - "weight": 544, + "method": "createTextColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "tokens\/get.md", + "demo": "tablesdb\/create-text-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-text-column.md", "auth": { "Project": [] } @@ -67895,18 +65169,69 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TOKEN_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" + }, + { + "name": "payload", + "in": "body", + "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?", + "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 token", - "operationId": "tokensUpdate", + "summary": "Update text column", + "operationId": "tablesDBUpdateTextColumn", "consumes": [ "application\/json" ], @@ -67914,35 +65239,40 @@ "application\/json" ], "tags": [ - "tokens" + "tablesDB" ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", + "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ResourceToken", + "description": "ColumnText", "schema": { - "$ref": "#\/definitions\/resourceToken" + "$ref": "#\/definitions\/columnText" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "tokens", - "weight": 546, + "method": "updateTextColumn", + "group": "columns", "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": "tablesdb\/update-text-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-text-column.md", "auth": { "Project": [] } @@ -67955,11 +65285,26 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token unique 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 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": "<TOKEN_ID>", "in": "path" }, { @@ -67968,53 +65313,78 @@ "schema": { "type": "object", "properties": { - "expire": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { "type": "string", - "description": "File token expiry date", - "default": null, - "x-example": "2020-10-15T06:38:00.000+00:00", - "format": "datetime", + "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 token", - "operationId": "tokensDelete", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { + "post": { + "summary": "Create URL column", + "operationId": "tablesDBCreateUrlColumn", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "tokens" + "tablesDB" ], - "description": "Delete a token by its unique ID.", + "description": "Create a URL column.\n", "responses": { - "204": { - "description": "No content" + "202": { + "description": "ColumnURL", + "schema": { + "$ref": "#\/definitions\/columnUrl" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "tokens", - "weight": 547, + "method": "createUrlColumn", + "group": "columns", "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": "tablesdb\/create-url-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-url-column.md", "auth": { "Project": [] } @@ -68027,201 +65397,105 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TOKEN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" - } - ] - } - }, - "\/usage\/events": { - "get": { - "summary": "List usage events", - "operationId": "usageListEvents", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "usage" - ], - "description": "Query usage event metrics from the usage database. Returns individual event rows with full metadata. Pass Query objects as JSON strings to filter, paginate, and order results. Supported query methods: equal, greaterThanEqual, lessThanEqual, orderAsc, orderDesc, limit, offset. Supported filter attributes: metric, path, method, status, resource, resourceId, country, userAgent, time (these match the underlying column names \u2014 note that the response surfaces `resource` as `resourceType` and `country` as `countryCode`). When no time filter is supplied the endpoint defaults to the last 7 days. Default `limit(100)` is applied if none is given; user-supplied limits are capped at 500. The `total` field is capped at 5000 to keep counts predictable \u2014 pass `total=false` to skip the count entirely.", - "responses": { - "200": { - "description": "Usage events list", - "schema": { - "$ref": "#\/definitions\/usageEventList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listEvents", - "group": "events", - "weight": 1221, - "cookies": false, - "type": "", - "demo": "usage\/list-events.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "projectId:{project.$id}", - "scope": "usage.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + }, { - "name": "queries", - "description": "Array of query strings as JSON. Supported: equal(\"metric\", [...]), equal(\"path\", [...]), equal(\"method\", [...]), equal(\"status\", [...]), equal(\"resource\", [...]), equal(\"resourceId\", [...]), equal(\"country\", [...]), equal(\"userAgent\", [...]), greaterThanEqual(\"time\", \"...\"), lessThanEqual(\"time\", \"...\"), orderAsc(\"time\"), orderDesc(\"time\"), limit(N), offset(N).", - "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": "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" - } - ] - } - }, - "\/usage\/gauges": { - "get": { - "summary": "List usage gauges", - "operationId": "usageListGauges", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "usage" - ], - "description": "Query usage gauge metrics (point-in-time resource snapshots) from the usage database. Returns individual gauge snapshots with metric, value, and timestamp. Pass Query objects as JSON strings to filter, paginate, and order results. Supported query methods: equal, greaterThanEqual, lessThanEqual, orderAsc, orderDesc, limit, offset. Supported filter attributes: metric, time. Use `orderDesc(\"time\"), limit(1)` to fetch the most recent snapshot. When no time filter is supplied the endpoint defaults to the last 7 days. Default `limit(100)` is applied if none is given; user-supplied limits are capped at 500. The `total` field is capped at 5000 to keep counts predictable \u2014 pass `total=false` to skip the count entirely.", - "responses": { - "200": { - "description": "Usage gauges list", + "name": "payload", + "in": "body", "schema": { - "$ref": "#\/definitions\/usageGaugeList" + "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": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] } } - }, - "deprecated": false, - "x-appwrite": { - "method": "listGauges", - "group": "gauges", - "weight": 1222, - "cookies": false, - "type": "", - "demo": "usage\/list-gauges.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "projectId:{project.$id}", - "scope": "usage.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "queries", - "description": "Array of query strings as JSON. Supported: equal(\"metric\", [...]), greaterThanEqual(\"time\", \"...\"), lessThanEqual(\"time\", \"...\"), orderAsc(\"time\"), orderDesc(\"time\"), limit(N), offset(N).", - "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": { - "get": { - "summary": "List users", - "operationId": "usersList", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { + "patch": { + "summary": "Update URL column", + "operationId": "tablesDBUpdateUrlColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Users List", + "description": "ColumnURL", "schema": { - "$ref": "#\/definitions\/userList" + "$ref": "#\/definitions\/columnUrl" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "users", - "weight": 70, + "method": "updateUrlColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "users\/list.md", + "demo": "tablesdb\/update-url-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.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\/tablesdb\/update-url-column.md", "auth": { "Project": [] } @@ -68234,141 +65508,66 @@ ], "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, impersonator", - "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.", + "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" - } - ] - }, - "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": 61, - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + "name": "key", + "description": "Column 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>" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "email": { + "default": { "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email", + "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 }, - "phone": { + "newKey": { "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", + "description": "New Column Key.", + "x-example": null, "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" + "required", + "default" ] } } ] } }, - "\/users\/argon2": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { "post": { - "summary": "Create user with Argon2 password", - "operationId": "usersCreateArgon2User", + "summary": "Create varchar column", + "operationId": "tablesDBCreateVarcharColumn", "consumes": [ "application\/json" ], @@ -68376,36 +65575,40 @@ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "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": "Create a varchar column.\n", "responses": { - "201": { - "description": "User", + "202": { + "description": "ColumnVarchar", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/columnVarchar" } } }, "deprecated": false, "x-appwrite": { - "method": "createArgon2User", - "group": "users", - "weight": 64, + "method": "createVarcharColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "users\/create-argon-2-user.md", + "demo": "tablesdb\/create-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], "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\/tablesdb\/create-varchar-column.md", "auth": { "Project": [] } @@ -68417,53 +65620,77 @@ } ], "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": { - "userId": { + "key": { "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>" + "description": "Column Key.", + "x-example": null }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" + "size": { + "type": "integer", + "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", + "x-example": 1, + "format": "int32" }, - "password": { - "type": "string", - "description": "User password hashed using Argon2.", - "default": null, - "x-example": "password", - "format": "password" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "name": { + "default": { "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "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?", + "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": [ - "userId", - "email", - "password" + "key", + "size", + "required" ] } } ] } }, - "\/users\/bcrypt": { - "post": { - "summary": "Create user with bcrypt password", - "operationId": "usersCreateBcryptUser", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { + "patch": { + "summary": "Update varchar column", + "operationId": "tablesDBUpdateVarcharColumn", "consumes": [ "application\/json" ], @@ -68471,36 +65698,40 @@ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "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 varchar column. Changing the `default` value will not update already existing rows.\n", "responses": { - "201": { - "description": "User", + "200": { + "description": "ColumnVarchar", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/columnVarchar" } } }, "deprecated": false, "x-appwrite": { - "method": "createBcryptUser", - "group": "users", - "weight": 62, + "method": "updateVarcharColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "users\/create-bcrypt-user.md", + "demo": "tablesdb\/update-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], "platforms": [ "console", "server" ], "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\/tablesdb\/update-varchar-column.md", "auth": { "Project": [] } @@ -68512,88 +65743,194 @@ } ], "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": { - "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>" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "email": { + "default": { "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true }, - "password": { - "type": "string", - "description": "User password hashed using Bcrypt.", - "default": null, - "x-example": "password", - "format": "password" + "size": { + "type": "integer", + "description": "Maximum size of the varchar column.", + "x-example": 1, + "format": "int32", + "x-nullable": true }, - "name": { + "newKey": { "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" - } - }, + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, "required": [ - "userId", - "email", - "password" + "required", + "default" ] } } ] } }, - "\/users\/identities": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { "get": { - "summary": "List identities", - "operationId": "usersListIdentities", + "summary": "Get column", + "operationId": "tablesDBGetColumn", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "description": "Get identities for all users.", + "description": "Get column by ID.", "responses": { "200": { - "description": "Identities List", + "description": "ColumnBoolean, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnString", "schema": { - "$ref": "#\/definitions\/identityList" + "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" + } + ], + "x-discriminator": { + "propertyName": "type", + "mapping": { + "boolean": "#\/definitions\/columnBoolean", + "integer": "#\/definitions\/columnInteger", + "double": "#\/definitions\/columnFloat", + "string": "#\/definitions\/columnString", + "datetime": "#\/definitions\/columnDatetime", + "relationship": "#\/definitions\/columnRelationship" + }, + "x-propertyNames": [ + "type", + "format" + ], + "x-mapping": { + "#\/definitions\/columnBoolean": { + "type": "boolean" + }, + "#\/definitions\/columnInteger": { + "type": "integer" + }, + "#\/definitions\/columnFloat": { + "type": "double" + }, + "#\/definitions\/columnEmail": { + "type": "string", + "format": "email" + }, + "#\/definitions\/columnEnum": { + "type": "string", + "format": "enum" + }, + "#\/definitions\/columnUrl": { + "type": "string", + "format": "url" + }, + "#\/definitions\/columnIp": { + "type": "string", + "format": "ip" + }, + "#\/definitions\/columnDatetime": { + "type": "datetime" + }, + "#\/definitions\/columnRelationship": { + "type": "relationship" + }, + "#\/definitions\/columnString": { + "type": "string" + } + } + } } } }, "deprecated": false, "x-appwrite": { - "method": "listIdentities", - "group": "identities", - "weight": 78, + "method": "getColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "users\/list-identities.md", + "demo": "tablesdb\/get-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": [ + "tables.read", + "collections.read", + "columns.read", + "attributes.read" + ], "platforms": [ "console", "server" ], "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\/tablesdb\/get-column.md", "auth": { "Project": [] } @@ -68606,50 +65943,41 @@ ], "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": "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.", + "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" } ] - } - }, - "\/users\/identities\/{identityId}": { + }, "delete": { - "summary": "Delete identity", - "operationId": "usersDeleteIdentity", + "summary": "Delete column", + "operationId": "tablesDBDeleteColumn", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "users" + "tablesDB" ], - "description": "Delete an identity by its unique ID.", + "description": "Deletes a column.", "responses": { "204": { "description": "No content" @@ -68657,23 +65985,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteIdentity", - "group": "identities", - "weight": 102, + "method": "deleteColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "users\/delete-identity.md", + "demo": "tablesdb\/delete-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], "platforms": [ "console", "server" ], "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\/tablesdb\/delete-column.md", "auth": { "Project": [] } @@ -68686,20 +66018,35 @@ ], "parameters": [ { - "name": "identityId", - "description": "Identity 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": "<IDENTITY_ID>", "in": "path" } ] } }, - "\/users\/md5": { - "post": { - "summary": "Create user with MD5 password", - "operationId": "usersCreateMD5User", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}\/relationship": { + "patch": { + "summary": "Update relationship column", + "operationId": "tablesDBUpdateRelationshipColumn", "consumes": [ "application\/json" ], @@ -68707,36 +66054,40 @@ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "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 relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { - "201": { - "description": "User", + "200": { + "description": "ColumnRelationship", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/columnRelationship" } } }, "deprecated": false, "x-appwrite": { - "method": "createMD5User", - "group": "users", - "weight": 63, + "method": "updateRelationshipColumn", + "group": "columns", "cookies": false, "type": "", - "demo": "users\/create-md-5-user.md", + "demo": "tablesdb\/update-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "tables.write", + "collections.write", + "columns.write", + "attributes.write" + ], "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\/tablesdb\/update-relationship-column.md", "auth": { "Project": [] } @@ -68748,90 +66099,101 @@ } ], "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" + }, { "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": { + "onDelete": { "type": "string", - "description": "User password hashed using MD5.", - "default": null, - "x-example": "password", - "format": "password" + "description": "Constraints option", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-nullable": true }, - "name": { + "newKey": { "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "description": "New Column Key.", + "x-example": null, + "x-nullable": true } - }, - "required": [ - "userId", - "email", - "password" - ] + } } } ] } }, - "\/users\/phpass": { - "post": { - "summary": "Create user with PHPass password", - "operationId": "usersCreatePHPassUser", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "tablesDBListIndexes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "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": "List indexes on the table.", "responses": { - "201": { - "description": "User", + "200": { + "description": "Column Indexes List", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/columnIndexList" } } }, "deprecated": false, "x-appwrite": { - "method": "createPHPassUser", - "group": "users", - "weight": 66, + "method": "listIndexes", + "group": "indexes", "cookies": false, "type": "", - "demo": "users\/create-ph-pass-user.md", + "demo": "tablesdb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], "platforms": [ "console", "server" ], "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\/tablesdb\/list-indexes.md", "auth": { "Project": [] } @@ -68844,52 +66206,47 @@ ], "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": "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": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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" } ] - } - }, - "\/users\/scrypt": { + }, "post": { - "summary": "Create user with Scrypt password", - "operationId": "usersCreateScryptUser", + "summary": "Create index", + "operationId": "tablesDBCreateIndex", "consumes": [ "application\/json" ], @@ -68897,36 +66254,39 @@ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "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": "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": { - "201": { - "description": "User", + "202": { + "description": "Index", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/columnIndex" } } }, "deprecated": false, "x-appwrite": { - "method": "createScryptUser", - "group": "users", - "weight": 67, + "method": "createIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "users\/create-scrypt-user.md", + "demo": "tablesdb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "tables.write", + "collections.write", + "indexes.write" + ], "platforms": [ "console", "server" ], "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\/tablesdb\/create-index.md", "auth": { "Project": [] } @@ -68938,129 +66298,129 @@ } ], "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": { - "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": { + "key": { "type": "string", - "description": "User password hashed using Scrypt.", - "default": null, - "x-example": "password", - "format": "password" + "description": "Index Key.", + "x-example": null }, - "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" + "description": "Index type.", + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique", + "spatial" + ], + "x-enum-name": "TablesDBIndexType" }, - "passwordMemory": { - "type": "integer", - "description": "Optional memory cost used to hash password.", - "default": null, + "columns": { + "type": "array", + "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", "x-example": null, - "format": "int32" + "items": { + "type": "string" + } }, - "passwordParallel": { - "type": "integer", - "description": "Optional parallelization cost used to hash password.", - "default": null, + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], "x-example": null, - "format": "int32" + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy" + } }, - "passwordLength": { - "type": "integer", - "description": "Optional hash length used to hash password.", - "default": null, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], "x-example": null, - "format": "int32" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "items": { + "type": "integer" + } } }, "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordCpu", - "passwordMemory", - "passwordParallel", - "passwordLength" + "key", + "type", + "columns" ] } } ] } }, - "\/users\/scrypt-modified": { - "post": { - "summary": "Create user with Scrypt modified password", - "operationId": "usersCreateScryptModifiedUser", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "tablesDBGetIndex", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "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 index by ID.", "responses": { - "201": { - "description": "User", + "200": { + "description": "Index", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/columnIndex" } } }, "deprecated": false, "x-appwrite": { - "method": "createScryptModifiedUser", - "group": "users", - "weight": 68, + "method": "getIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "users\/create-scrypt-modified-user.md", + "demo": "tablesdb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "tables.read", + "collections.read", + "indexes.read" + ], "platforms": [ "console", "server" ], "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\/tablesdb\/get-index.md", "auth": { "Project": [] } @@ -69073,110 +66433,68 @@ ], "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": "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": "Index Key.", + "required": true, + "type": "string", + "in": "path" } ] - } - }, - "\/users\/sha": { - "post": { - "summary": "Create user with SHA password", - "operationId": "usersCreateSHAUser", + }, + "delete": { + "summary": "Delete index", + "operationId": "tablesDBDeleteIndex", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "users" + "tablesDB" ], - "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": "Delete an index.", "responses": { - "201": { - "description": "User", - "schema": { - "$ref": "#\/definitions\/user" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createSHAUser", - "group": "users", - "weight": 65, + "method": "deleteIndex", + "group": "indexes", "cookies": false, "type": "", - "demo": "users\/create-sha-user.md", + "demo": "tablesdb\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "tables.write", + "collections.write", + "indexes.write" + ], "platforms": [ "console", "server" ], "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\/tablesdb\/delete-index.md", "auth": { "Project": [] } @@ -69189,107 +66507,71 @@ ], "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 SHA.", - "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>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } + "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" } ] } }, - "\/users\/usage": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/logs": { "get": { - "summary": "Get users usage stats", - "operationId": "usersGetUsage", + "summary": "List table logs", + "operationId": "tablesDBListTableLogs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "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 the table activity logs list by its unique ID.", "responses": { "200": { - "description": "UsageUsers", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/usageUsers" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 104, + "method": "listTableLogs", + "group": "tables", "cookies": false, "type": "", - "demo": "users\/get-usage.md", + "demo": "tablesdb\/list-table-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": [ + "tables.read", + "collections.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\/tablesdb\/get-table-logs.md", "auth": { "Project": [] } @@ -69301,67 +66583,78 @@ ], "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", + "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" } ] } }, - "\/users\/{userId}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { "get": { - "summary": "Get user", - "operationId": "usersGet", + "summary": "List rows", + "operationId": "tablesDBListRows", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "description": "Get a user by its unique ID.", + "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": "User", + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "users", - "weight": 71, + "method": "listRows", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/get.md", + "demo": "tablesdb\/list-rows.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": [ + "rows.read", + "documents.read" + ], "platforms": [ "console", + "client", "server" ], "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\/tablesdb\/list-rows.md", "auth": { "Project": [] } @@ -69369,81 +66662,72 @@ "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" - } - ] - }, - "delete": { - "summary": "Delete user", - "operationId": "usersDelete", - "consumes": [ - "application\/json" - ], - "produces": [], - "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.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "delete", - "group": "users", - "weight": 100, - "cookies": false, - "type": "", - "demo": "users\/delete.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.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + }, { - "name": "userId", - "description": "User ID.", + "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": "<USER_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.", + "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 caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, table, schema version (columns and indexes), caller authorization roles, and the exact query \u2014 so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; row writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] - } - }, - "\/users\/{userId}\/email": { - "patch": { - "summary": "Update email", - "operationId": "usersUpdateEmail", + }, + "post": { + "summary": "Create row", + "operationId": "tablesDBCreateRow", "consumes": [ "application\/json" ], @@ -69451,53 +66735,127 @@ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "description": "Update the user email by its unique ID.", + "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": "User", + "201": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "users", - "weight": 85, + "method": "createRow", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/update-email.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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\/users\/update-user-email.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": 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 + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, "type": "string", - "x-example": "<USER_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). Make sure to define columns before creating rows.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -69506,26 +66864,50 @@ "schema": { "type": "object", "properties": { - "email": { + "rowId": { "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" + "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).", + "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.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "email" - ] + } } } ] - } - }, - "\/users\/{userId}\/impersonator": { - "patch": { - "summary": "Update user impersonator capability", - "operationId": "usersUpdateImpersonator", + }, + "put": { + "summary": "Upsert rows", + "operationId": "tablesDBUpsertRows", "consumes": [ "application\/json" ], @@ -69533,36 +66915,68 @@ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "description": "Enable or disable whether a user can impersonate other users. When impersonation headers are used, the request runs as the target user for API behavior, while internal audit logs still attribute the action to the original impersonator and store the impersonated target details only in internal audit payload data.\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": "User", + "201": { + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateImpersonator", - "group": "users", - "weight": 81, + "method": "upsertRows", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/update-impersonator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-impersonator.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": [] } @@ -69575,11 +66989,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": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -69588,25 +67010,31 @@ "schema": { "type": "object", "properties": { - "impersonator": { - "type": "boolean", - "description": "Whether the user can impersonate other users. When true, the user can browse project users to choose a target and can pass impersonation headers to act as that user. Internal audit logs still attribute impersonated actions to the original impersonator and store the target user details only in internal audit payload data.", - "default": null, - "x-example": false + "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": [ - "impersonator" + "rows" ] } } ] - } - }, - "\/users\/{userId}\/jwts": { - "post": { - "summary": "Create user JWT", - "operationId": "usersCreateJWT", + }, + "patch": { + "summary": "Update rows", + "operationId": "tablesDBUpdateRows", "consumes": [ "application\/json" ], @@ -69614,36 +67042,38 @@ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "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 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": { - "201": { - "description": "JWT", + "200": { + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/jwt" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "createJWT", - "group": "sessions", - "weight": 103, + "method": "updateRows", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/create-jwt.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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" + ], "platforms": [ "console", "server" ], "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\/tablesdb\/update-rows.md", "auth": { "Project": [] } @@ -69656,11 +67086,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": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -69669,29 +67107,35 @@ "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>" + "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}" }, - "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" + "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.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } } } } ] - } - }, - "\/users\/{userId}\/labels": { - "put": { - "summary": "Update user labels", - "operationId": "usersUpdateLabels", + }, + "delete": { + "summary": "Delete rows", + "operationId": "tablesDBDeleteRows", "consumes": [ "application\/json" ], @@ -69699,36 +67143,38 @@ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "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": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", "responses": { "200": { - "description": "User", + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateLabels", - "group": "users", - "weight": 80, + "method": "deleteRows", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/update-labels.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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" + ], "platforms": [ "console", "server" ], "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\/tablesdb\/delete-rows.md", "auth": { "Project": [] } @@ -69741,11 +67187,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": "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" }, { @@ -69754,63 +67208,69 @@ "schema": { "type": "object", "properties": { - "labels": { + "queries": { "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, + "description": "Array of query strings generated using the Query 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.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "labels" - ] + } } } ] } }, - "\/users\/{userId}\/logs": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { "get": { - "summary": "List user logs", - "operationId": "usersListLogs", + "summary": "Get row", + "operationId": "tablesDBGetRow", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "description": "Get the user activity logs list by its unique ID.", + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", "responses": { "200": { - "description": "Logs List", + "description": "Row", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 76, + "method": "getRow", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/list-logs.md", + "demo": "tablesdb\/get-row.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": [ + "rows.read", + "documents.read" + ], "platforms": [ "console", + "client", "server" ], "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\/tablesdb\/get-row.md", "auth": { "Project": [] } @@ -69818,21 +67278,39 @@ "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": "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). 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.", "required": false, "type": "array", "collectionFormat": "multi", @@ -69843,112 +67321,162 @@ "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" } ] - } - }, - "\/users\/{userId}\/memberships": { - "get": { - "summary": "List user memberships", - "operationId": "usersListMemberships", - "consumes": [], + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "description": "Get the user membership list by its unique ID.", + "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": "Memberships List", + "201": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/membershipList" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 75, + "method": "upsertRow", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/list-memberships.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "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", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", - "auth": { - "Project": [] - } - }, - "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, teamId, invited, joined, confirm, roles", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "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": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "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.", + "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": "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}" + }, + "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\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true + } + } + } } ] - } - }, - "\/users\/{userId}\/mfa": { + }, "patch": { - "summary": "Update MFA", - "operationId": "usersUpdateMfa", + "summary": "Update row", + "operationId": "tablesDBUpdateRow", "consumes": [ "application\/json" ], @@ -69956,96 +67484,39 @@ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "description": "Enable or disable MFA on a user account.", + "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": "User", + "description": "Row", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/row" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfa", - "group": "users", - "weight": 90, + "method": "updateRow", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/update-mfa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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" + ], "platforms": [ "console", + "client", "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", "auth": { "Project": [] } @@ -70053,16 +67524,34 @@ "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": "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" }, { @@ -70071,115 +67560,70 @@ "schema": { "type": "object", "properties": { - "mfa": { - "type": "boolean", - "description": "Enable or disable MFA.", - "default": null, - "x-example": false + "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).", + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "mfa" - ] + } } } ] - } - }, - "\/users\/{userId}\/mfa\/authenticators\/{type}": { + }, "delete": { - "summary": "Delete authenticator", - "operationId": "usersDeleteMfaAuthenticator", + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "users" + "tablesDB" ], - "description": "Delete an authenticator app.", + "description": "Delete a row by its unique ID.", "responses": { "204": { "description": "No content" } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteMfaAuthenticator", - "group": "mfa", - "weight": 95, + "method": "deleteRow", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/delete-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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" + ], "platforms": [ "console", + "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": [] - }, - "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", "auth": { "Project": [] } @@ -70187,270 +67631,147 @@ "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": "type", - "description": "Type of authenticator.", + "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": "totp", - "enum": [ - "totp" - ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], + "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": { + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true + } + } + } } ] } }, - "\/users\/{userId}\/mfa\/factors": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/logs": { "get": { - "summary": "List factors", - "operationId": "usersListMfaFactors", + "summary": "List row logs", + "operationId": "tablesDBListRowLogs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "description": "List the factors available on the account to be used as a MFA challange.", + "description": "Get the row activity logs list by its unique ID.", "responses": { "200": { - "description": "MFAFactors", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/mfaFactors" + "$ref": "#\/definitions\/logList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listMfaFactors", - "group": "mfa", - "weight": 91, + "method": "listRowLogs", + "group": "logs", "cookies": false, "type": "", - "demo": "users\/list-mfa-factors.md", + "demo": "tablesdb\/list-row-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": [ + "rows.read", + "documents.read" + ], "platforms": [ - "console", - "server" + "console" ], "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" - } - }, - { - "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 - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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" - } - ] - } - }, - "\/users\/{userId}\/mfa\/recovery-codes": { - "get": { - "summary": "Get MFA recovery codes", - "operationId": "usersGetMfaRecoveryCodes", - "consumes": [], - "produces": [ - "application\/json" - ], - "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", - "schema": { - "$ref": "#\/definitions\/mfaRecoveryCodes" - } - } - }, - "deprecated": true, - "x-appwrite": { - "method": "getMfaRecoveryCodes", - "group": "mfa", - "weight": 92, - "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": "#\/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": [] - } - }, - "security": [ { - "Project": [], - "Key": [] - } - ], - "parameters": [ + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, { - "name": "userId", - "description": "User ID.", + "name": "rowId", + "description": "Row ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "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" } ] - }, - "put": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "usersUpdateMfaRecoveryCodes", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", "consumes": [ "application\/json" ], @@ -70458,92 +67779,39 @@ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "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": "Decrement a specific column of a row by a given value.", "responses": { "200": { - "description": "MFA Recovery Codes", + "description": "Row", "schema": { - "$ref": "#\/definitions\/mfaRecoveryCodes" + "$ref": "#\/definitions\/row" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfaRecoveryCodes", - "group": "mfa", - "weight": 94, + "method": "decrementRowColumn", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/update-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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" + ], "platforms": [ - "console", - "server" + "client", + "server", + "console" ], "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", "auth": { "Project": [] } @@ -70551,23 +67819,79 @@ "security": [ { "Project": [], + "Session": [], + "JWT": [], "Key": [] } ], "parameters": [ { - "name": "userId", - "description": "User 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": "<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.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true + } + } + } } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { "patch": { - "summary": "Create MFA recovery codes", - "operationId": "usersCreateMfaRecoveryCodes", + "summary": "Increment row column", + "operationId": "tablesDBIncrementRowColumn", "consumes": [ "application\/json" ], @@ -70575,92 +67899,39 @@ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "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": "Increment a specific column of a row by a given value.", "responses": { - "201": { - "description": "MFA Recovery Codes", + "200": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/mfaRecoveryCodes" + "$ref": "#\/definitions\/row" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createMfaRecoveryCodes", - "group": "mfa", - "weight": 93, + "method": "incrementRowColumn", + "group": "rows", "cookies": false, "type": "", - "demo": "users\/create-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "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" + ], "platforms": [ - "console", - "server" + "client", + "server", + "console" ], "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", "auth": { "Project": [] } @@ -70668,304 +67939,310 @@ "security": [ { "Project": [], + "Session": [], + "JWT": [], "Key": [] } ], "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": "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" + }, + "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": "<TRANSACTION_ID>", + "x-nullable": true + } + } + } } ] } }, - "\/users\/{userId}\/name": { - "patch": { - "summary": "Update name", - "operationId": "usersUpdateName", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/usage": { + "get": { + "summary": "Get table usage stats", + "operationId": "tablesDBGetTableUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "description": "Update the user name by its unique ID.", + "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": "User", + "description": "UsageTable", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/usageTable" } } }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "users", - "weight": 83, + "method": "getTableUsage", + "group": null, "cookies": false, "type": "", - "demo": "users\/update-name.md", + "demo": "tablesdb\/get-table-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "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" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "users" - ], - "description": "Update the user password by its unique ID.", - "responses": { - "200": { - "description": "User", - "schema": { - "$ref": "#\/definitions\/user" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updatePassword", - "group": "users", - "weight": 84, - "cookies": false, - "type": "", - "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": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "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" + }, { - "name": "userId", - "description": "User ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TABLE_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", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/usage": { + "get": { + "summary": "Get TablesDB usage stats", + "operationId": "tablesDBGetUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "tablesDB" ], - "description": "Update the user phone by its unique ID.", + "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": { "200": { - "description": "User", + "description": "UsageDatabase", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/usageDatabase" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePhone", - "group": "users", - "weight": 86, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "users\/update-phone.md", + "demo": "tablesdb\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.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": [ { - "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": { - "number": { - "type": "string", - "description": "User phone number.", - "default": null, - "x-example": "+12065550100", - "format": "phone" - } - }, - "required": [ - "number" - ] - } + "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" } ] } }, - "\/users\/{userId}\/prefs": { + "\/teams": { "get": { - "summary": "Get user preferences", - "operationId": "usersGetPrefs", + "summary": "List teams", + "operationId": "teamsList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "teams" ], - "description": "Get the user preferences 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": { "200": { - "description": "Preferences", + "description": "Teams List", "schema": { - "$ref": "#\/definitions\/preferences" + "$ref": "#\/definitions\/teamList" } } }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "users", - "weight": 72, + "method": "list", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/get-prefs.md", + "demo": "teams\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [] } @@ -70973,23 +68250,47 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "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). 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": "<USER_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" } ] }, - "patch": { - "summary": "Update user preferences", - "operationId": "usersUpdatePrefs", + "post": { + "summary": "Create team", + "operationId": "teamsCreate", "consumes": [ "application\/json" ], @@ -70997,36 +68298,36 @@ "application\/json" ], "tags": [ - "users" + "teams" ], - "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": "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": "Preferences", + "201": { + "description": "Team", "schema": { - "$ref": "#\/definitions\/preferences" + "$ref": "#\/definitions\/team" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "users", - "weight": 88, + "method": "create", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/update-prefs.md", + "demo": "teams\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { "Project": [] } @@ -71034,81 +68335,88 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "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": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "default": {}, - "x-example": "{}" + "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.", + "default": [ + "owner" + ], + "x-example": null, + "items": { + "type": "string" + } } }, "required": [ - "prefs" + "teamId", + "name" ] } } ] } }, - "\/users\/{userId}\/sessions": { + "\/teams\/{teamId}": { "get": { - "summary": "List user sessions", - "operationId": "usersListSessions", + "summary": "Get team", + "operationId": "teamsGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "teams" ], - "description": "Get the user sessions list by its unique ID.", + "description": "Get a team by its ID. All team members have read access for this resource.", "responses": { "200": { - "description": "Sessions List", + "description": "Team", "schema": { - "$ref": "#\/definitions\/sessionList" + "$ref": "#\/definitions\/team" } } }, "deprecated": false, "x-appwrite": { - "method": "listSessions", - "group": "sessions", - "weight": 74, + "method": "get", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/list-sessions.md", + "demo": "teams\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.read", - "sessions.read" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", "auth": { "Project": [] } @@ -71116,32 +68424,25 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TEAM_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 session", - "operationId": "usersCreateSession", + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", "consumes": [ "application\/json" ], @@ -71149,39 +68450,36 @@ "application\/json" ], "tags": [ - "users" + "teams" ], - "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": "Update the team's name by its unique ID.", "responses": { - "201": { - "description": "Session", + "200": { + "description": "Team", "schema": { - "$ref": "#\/definitions\/session" + "$ref": "#\/definitions\/team" } } }, "deprecated": false, "x-appwrite": { - "method": "createSession", - "group": "sessions", - "weight": 96, + "method": "updateName", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/create-session.md", + "demo": "teams\/update-name.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", "auth": { "Project": [] } @@ -71189,31 +68487,50 @@ "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": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TEAM_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "New team name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "name" + ] + } } ] }, "delete": { - "summary": "Delete user sessions", - "operationId": "usersDeleteSessions", + "summary": "Delete team", + "operationId": "teamsDelete", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "users" + "teams" ], - "description": "Delete all user's sessions by using the user's unique ID.", + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", "responses": { "204": { "description": "No content" @@ -71221,26 +68538,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteSessions", - "group": "sessions", - "weight": 99, + "method": "delete", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/delete-sessions.md", + "demo": "teams\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", "auth": { "Project": [] } @@ -71248,210 +68562,141 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TEAM_ID>", "in": "path" } ] } }, - "\/users\/{userId}\/sessions\/{sessionId}": { - "delete": { - "summary": "Delete user session", - "operationId": "usersDeleteSession", - "consumes": [ + "\/teams\/{teamId}\/logs": { + "get": { + "summary": "List team logs", + "operationId": "teamsListLogs", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "users" + "teams" ], - "description": "Delete a user sessions by its unique ID.", + "description": "Get the team activity logs list by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Logs List", + "schema": { + "$ref": "#\/definitions\/logList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSession", - "group": "sessions", - "weight": 98, + "method": "listLogs", + "group": "logs", "cookies": false, "type": "", - "demo": "users\/delete-session.md", + "demo": "teams\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "users.write", - "sessions.write" - ], + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "sessionId", - "description": "Session ID.", - "required": true, - "type": "string", - "x-example": "<SESSION_ID>", - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/status": { - "patch": { - "summary": "Update user status", - "operationId": "usersUpdateStatus", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "users" - ], - "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": { - "200": { - "description": "User", - "schema": { - "$ref": "#\/definitions\/user" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateStatus", - "group": "users", - "weight": 79, - "cookies": false, - "type": "", - "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": [] - } - }, - "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). 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": { - "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": "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}\/targets": { + "\/teams\/{teamId}\/memberships": { "get": { - "summary": "List user targets", - "operationId": "usersListTargets", + "summary": "List team memberships", + "operationId": "teamsListMemberships", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "teams" ], - "description": "List the messaging targets that are associated with a user.", + "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": "Target list", + "description": "Memberships List", "schema": { - "$ref": "#\/definitions\/targetList" + "$ref": "#\/definitions\/membershipList" } } }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "targets", - "weight": 77, + "method": "listMemberships", + "group": "memberships", "cookies": false, "type": "", - "demo": "users\/list-targets.md", + "demo": "teams\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.read", + "scope": "teams.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", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", "auth": { "Project": [] } @@ -71459,21 +68704,23 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_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 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. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", "required": false, "type": "array", "collectionFormat": "multi", @@ -71483,6 +68730,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.", @@ -71495,8 +68751,8 @@ ] }, "post": { - "summary": "Create user target", - "operationId": "usersCreateTarget", + "summary": "Create team membership", + "operationId": "teamsCreateMembership", "consumes": [ "application\/json" ], @@ -71504,36 +68760,36 @@ "application\/json" ], "tags": [ - "users" + "teams" ], - "description": "Create a messaging target.", + "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": "Target", + "description": "Membership", "schema": { - "$ref": "#\/definitions\/target" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "createTarget", - "group": "targets", - "weight": 69, + "method": "createMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "users\/create-target.md", - "rate-limit": 0, + "demo": "teams\/create-membership.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "scope": "teams.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", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", "auth": { "Project": [] } @@ -71541,16 +68797,18 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { @@ -71559,93 +68817,95 @@ "schema": { "type": "object", "properties": { - "targetId": { + "email": { "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>" + "description": "Email of the new team member.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "providerType": { + "userId": { "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": [] + "description": "ID of the user to be added to a team.", + "default": "", + "x-example": "<USER_ID>" }, - "identifier": { + "phone": { "type": "string", - "description": "The target identifier (token, email, phone etc.)", - "default": null, - "x-example": "<IDENTIFIER>" + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" }, - "providerId": { + "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": "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.", + "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": "<PROVIDER_ID>" + "x-example": "https:\/\/example.com", + "format": "url" }, "name": { "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "description": "Name of the new team member. Max length: 128 chars.", "default": "", "x-example": "<NAME>" } }, "required": [ - "targetId", - "providerType", - "identifier" + "roles" ] } } ] } }, - "\/users\/{userId}\/targets\/{targetId}": { + "\/teams\/{teamId}\/memberships\/{membershipId}": { "get": { - "summary": "Get user target", - "operationId": "usersGetTarget", + "summary": "Get team membership", + "operationId": "teamsGetMembership", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "teams" ], - "description": "Get a user's push notification target 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": "Target", + "description": "Membership", "schema": { - "$ref": "#\/definitions\/target" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "getTarget", - "group": "targets", - "weight": 73, + "method": "getMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "users\/get-target.md", + "demo": "teams\/get-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.read", + "scope": "teams.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", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", "auth": { "Project": [] } @@ -71653,31 +68913,33 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", - "x-example": "<TARGET_ID>", + "x-example": "<MEMBERSHIP_ID>", "in": "path" } ] }, "patch": { - "summary": "Update user target", - "operationId": "usersUpdateTarget", + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", "consumes": [ "application\/json" ], @@ -71685,36 +68947,36 @@ "application\/json" ], "tags": [ - "users" + "teams" ], - "description": "Update a messaging target.", + "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": "Target", + "description": "Membership", "schema": { - "$ref": "#\/definitions\/target" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTarget", - "group": "targets", - "weight": 89, + "method": "updateMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "users\/update-target.md", + "demo": "teams\/update-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "scope": "teams.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", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", "auth": { "Project": [] } @@ -71722,24 +68984,26 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", - "x-example": "<TARGET_ID>", + "x-example": "<MEMBERSHIP_ID>", "in": "path" }, { @@ -71748,40 +69012,33 @@ "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>" + "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, + "items": { + "type": "string" + } } - } + }, + "required": [ + "roles" + ] } } ] }, "delete": { - "summary": "Delete user target", - "operationId": "usersDeleteTarget", + "summary": "Delete team membership", + "operationId": "teamsDeleteMembership", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "users" + "teams" ], - "description": "Delete a messaging target.", + "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" @@ -71789,23 +69046,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteTarget", - "group": "targets", - "weight": 101, + "method": "deleteMembership", + "group": "memberships", "cookies": false, "type": "", - "demo": "users\/delete-target.md", + "demo": "teams\/delete-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "scope": "teams.write", "platforms": [ - "server", - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", "auth": { "Project": [] } @@ -71813,33 +69070,35 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", - "x-example": "<TARGET_ID>", + "x-example": "<MEMBERSHIP_ID>", "in": "path" } ] } }, - "\/users\/{userId}\/tokens": { - "post": { - "summary": "Create token", - "operationId": "usersCreateToken", + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", "consumes": [ "application\/json" ], @@ -71847,36 +69106,36 @@ "application\/json" ], "tags": [ - "users" + "teams" ], - "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": "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": "Token", + "200": { + "description": "Membership", "schema": { - "$ref": "#\/definitions\/token" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "createToken", - "group": "sessions", - "weight": 97, + "method": "updateMembershipStatus", + "group": "memberships", "cookies": false, "type": "", - "demo": "users\/create-token.md", + "demo": "teams\/update-membership-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "public", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", "auth": { "Project": [] } @@ -71884,16 +69143,25 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TEAM_ID>", + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "type": "string", + "x-example": "<MEMBERSHIP_ID>", "in": "path" }, { @@ -71902,67 +69170,65 @@ "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" + "userId": { + "type": "string", + "description": "User ID.", + "x-example": "<USER_ID>" }, - "expire": { - "type": "integer", - "description": "Token expiration period in seconds. The default expiration is 15 minutes.", - "default": 900, - "x-example": 60, - "format": "int32" + "secret": { + "type": "string", + "description": "Secret key.", + "x-example": "<SECRET>" } - } + }, + "required": [ + "userId", + "secret" + ] } } ] } }, - "\/users\/{userId}\/verification": { - "patch": { - "summary": "Update email verification", - "operationId": "usersUpdateEmailVerification", - "consumes": [ - "application\/json" - ], + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "teams" ], - "description": "Update the user email verification status by its unique 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": "User", + "description": "Preferences", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/preferences" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEmailVerification", - "group": "users", - "weight": 87, + "method": "getPrefs", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/update-email-verification.md", + "demo": "teams\/get-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", "auth": { "Project": [] } @@ -71970,43 +69236,24 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TEAM_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" - ] - } } ] - } - }, - "\/users\/{userId}\/verification\/phone": { - "patch": { - "summary": "Update phone verification", - "operationId": "usersUpdatePhoneVerification", + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", "consumes": [ "application\/json" ], @@ -72014,36 +69261,36 @@ "application\/json" ], "tags": [ - "users" + "teams" ], - "description": "Update the user phone verification status 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": "User", + "description": "Preferences", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/preferences" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePhoneVerification", - "group": "users", - "weight": 82, + "method": "updatePrefs", + "group": "teams", "cookies": false, "type": "", - "demo": "users\/update-phone-verification.md", + "demo": "teams\/update-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", "auth": { "Project": [] } @@ -72051,16 +69298,17 @@ "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { @@ -72069,91 +69317,171 @@ "schema": { "type": "object", "properties": { - "phoneVerification": { - "type": "boolean", - "description": "User phone verification status.", - "default": null, - "x-example": false + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "default": {}, + "x-example": "{}" } }, "required": [ - "phoneVerification" + "prefs" ] } } ] } }, - "\/vcs\/github\/installations\/{installationId}\/detections": { - "post": { - "summary": "Create repository detection", - "operationId": "vcsCreateRepositoryDetection", - "consumes": [ - "application\/json" - ], + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vcs" + "tokens" ], - "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": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", "responses": { "200": { - "description": "DetectionRuntime, or DetectionFramework", + "description": "Resource Tokens List", "schema": { - "x-oneOf": [ - { - "$ref": "#\/definitions\/detectionRuntime" - }, - { - "$ref": "#\/definitions\/detectionFramework" - } - ], - "x-discriminator": { - "propertyName": "type", - "mapping": { - "runtime": "#\/definitions\/detectionRuntime", - "framework": "#\/definitions\/detectionFramework" - } - } + "$ref": "#\/definitions\/resourceTokenList" } } }, "deprecated": false, "x-appwrite": { - "method": "createRepositoryDetection", - "group": "repositories", - "weight": 575, + "method": "list", + "group": "files", "cookies": false, "type": "", - "demo": "vcs\/create-repository-detection.md", + "demo": "tokens\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "scope": "tokens.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository-detection.md", "auth": { "Project": [] } }, "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": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "tokens" + ], + "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "responses": { + "201": { + "description": "ResourceToken", + "schema": { + "$ref": "#\/definitions\/resourceToken" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createFileToken", + "group": "files", + "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": [] } + }, + "security": [ + { + "Project": [], + "Key": [] + } ], "parameters": [ { - "name": "installationId", - "description": "Installation 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": "<INSTALLATION_ID>", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", "in": "path" }, { @@ -72162,150 +69490,80 @@ "schema": { "type": "object", "properties": { - "providerRepositoryId": { - "type": "string", - "description": "Repository Id", - "default": null, - "x-example": "<PROVIDER_REPOSITORY_ID>" - }, - "type": { - "type": "string", - "description": "Detector type. Must be one of the following: runtime, framework", - "default": null, - "x-example": "runtime", - "enum": [ - "runtime", - "framework" - ], - "x-enum-name": "VCSDetectionType", - "x-enum-keys": [] - }, - "providerRootDirectory": { + "expire": { "type": "string", - "description": "Path to Root Directory", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" + "description": "Token expiry date", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true } - }, - "required": [ - "providerRepositoryId", - "type" - ] + } } } ] } }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories": { + "\/tokens\/{tokenId}": { "get": { - "summary": "List repositories", - "operationId": "vcsListRepositories", + "summary": "Get token", + "operationId": "tokensGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vcs" + "tokens" ], - "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": "Get a token by its unique ID.", "responses": { "200": { - "description": "Runtime Provider Repositories List, or Framework Provider Repositories List", + "description": "ResourceToken", "schema": { - "x-oneOf": [ - { - "$ref": "#\/definitions\/providerRepositoryRuntimeList" - }, - { - "$ref": "#\/definitions\/providerRepositoryFrameworkList" - } - ], - "x-discriminator": { - "propertyName": "type", - "mapping": { - "runtime": "#\/definitions\/providerRepositoryRuntimeList", - "framework": "#\/definitions\/providerRepositoryFrameworkList" - } - } + "$ref": "#\/definitions\/resourceToken" } } }, "deprecated": false, "x-appwrite": { - "method": "listRepositories", - "group": "repositories", - "weight": 572, + "method": "get", + "group": "tokens", "cookies": false, "type": "", - "demo": "vcs\/list-repositories.md", + "demo": "tokens\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "tokens.read", "platforms": [ - "console" + "console", + "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": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "tokenId", + "description": "Token ID.", "required": true, "type": "string", - "x-example": "<INSTALLATION_ID>", + "x-example": "<TOKEN_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" } ] }, - "post": { - "summary": "Create repository", - "operationId": "vcsCreateRepository", + "patch": { + "summary": "Update token", + "operationId": "tokensUpdate", "consumes": [ "application\/json" ], @@ -72313,51 +69571,51 @@ "application\/json" ], "tags": [ - "vcs" + "tokens" ], - "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": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", "responses": { "200": { - "description": "ProviderRepository", + "description": "ResourceToken", "schema": { - "$ref": "#\/definitions\/providerRepository" + "$ref": "#\/definitions\/resourceToken" } } }, "deprecated": false, "x-appwrite": { - "method": "createRepository", - "group": "repositories", - "weight": 570, + "method": "update", + "group": "tokens", "cookies": false, "type": "", - "demo": "vcs\/create-repository.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.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" + "console", + "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": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "tokenId", + "description": "Token unique ID.", "required": true, "type": "string", - "x-example": "<INSTALLATION_ID>", + "x-example": "<TOKEN_ID>", "in": "path" }, { @@ -72366,171 +69624,124 @@ "schema": { "type": "object", "properties": { - "name": { + "expire": { "type": "string", - "description": "Repository name (slug)", - "default": null, - "x-example": "<NAME>" - }, - "private": { - "type": "boolean", - "description": "Mark repository public or private", - "default": null, - "x-example": false + "description": "File token expiry date", + "x-example": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true } - }, - "required": [ - "name", - "private" - ] + } } } ] - } - }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}": { - "get": { - "summary": "Get repository", - "operationId": "vcsGetRepository", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete token", + "operationId": "tokensDelete", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "vcs" + "tokens" ], - "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": "Delete a token by its unique ID.", "responses": { - "200": { - "description": "ProviderRepository", - "schema": { - "$ref": "#\/definitions\/providerRepository" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getRepository", - "group": "repositories", - "weight": 571, + "method": "delete", + "group": "tokens", "cookies": false, "type": "", - "demo": "vcs\/get-repository.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "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" + "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", - "required": true, - "type": "string", - "x-example": "<INSTALLATION_ID>", - "in": "path" - }, - { - "name": "providerRepositoryId", - "description": "Repository Id", + "name": "tokenId", + "description": "Token ID.", "required": true, "type": "string", - "x-example": "<PROVIDER_REPOSITORY_ID>", + "x-example": "<TOKEN_ID>", "in": "path" } ] } }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/branches": { + "\/usage\/events": { "get": { - "summary": "List repository branches", - "operationId": "vcsListRepositoryBranches", + "summary": "List usage events", + "operationId": "usageListEvents", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vcs" + "usage" ], - "description": "Get a list of branches from a GitHub repository in your installation. This endpoint supports filtering by a search term and pagination using query strings such as `Query.limit()`, `Query.offset()`, `Query.cursorAfter()`, and `Query.cursorBefore()`. It returns branch names along with the total number of matches. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.\n", + "description": "Query usage event metrics from the usage database. Returns individual event rows with full metadata. Pass Query objects as JSON strings to filter, paginate, and order results. Supported query methods: equal, greaterThanEqual, lessThanEqual, orderAsc, orderDesc, limit, offset. Supported filter attributes: metric, path, method, status, resource, resourceId, country, userAgent, time (these match the underlying column names \u2014 note that the response surfaces `resource` as `resourceType` and `country` as `countryCode`). When no time filter is supplied the endpoint defaults to the last 7 days. Default `limit(100)` is applied if none is given; user-supplied limits are capped at 500. The `total` field is capped at 5000 to keep counts predictable \u2014 pass `total=false` to skip the count entirely.", "responses": { "200": { - "description": "Branches List", + "description": "Usage events list", "schema": { - "$ref": "#\/definitions\/branchList" + "$ref": "#\/definitions\/usageEventList" } } }, "deprecated": false, "x-appwrite": { - "method": "listRepositoryBranches", - "group": "repositories", - "weight": 573, + "method": "listEvents", + "group": "events", "cookies": false, "type": "", - "demo": "vcs\/list-repository-branches.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "demo": "usage\/list-events.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{project.$id}", + "scope": "usage.read", "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", - "required": true, - "type": "string", - "x-example": "<INSTALLATION_ID>", - "in": "path" - }, - { - "name": "providerRepositoryId", - "description": "Repository Id", - "required": true, - "type": "string", - "x-example": "<PROVIDER_REPOSITORY_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": "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, offset, cursorAfter, and cursorBefore", + "description": "Array of query strings as JSON. Supported: equal(\"metric\", [...]), equal(\"path\", [...]), equal(\"method\", [...]), equal(\"status\", [...]), equal(\"resource\", [...]), equal(\"resourceId\", [...]), equal(\"country\", [...]), equal(\"userAgent\", [...]), greaterThanEqual(\"time\", \"...\"), lessThanEqual(\"time\", \"...\"), orderAsc(\"time\"), orderDesc(\"time\"), limit(N), offset(N).", "required": false, "type": "array", "collectionFormat": "multi", @@ -72539,412 +69750,488 @@ }, "default": [], "in": "query" - } - ] - } - }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/contents": { - "get": { - "summary": "Get files and directories of a VCS repository", - "operationId": "vcsGetRepositoryContents", + }, + { + "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" + } + ] + } + }, + "\/usage\/gauges": { + "get": { + "summary": "List usage gauges", + "operationId": "usageListGauges", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vcs" + "usage" ], - "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": "Query usage gauge metrics (point-in-time resource snapshots) from the usage database. Returns individual gauge snapshots with metric, value, and timestamp. Pass Query objects as JSON strings to filter, paginate, and order results. Supported query methods: equal, greaterThanEqual, lessThanEqual, orderAsc, orderDesc, limit, offset. Supported filter attributes: metric, time. Use `orderDesc(\"time\"), limit(1)` to fetch the most recent snapshot. When no time filter is supplied the endpoint defaults to the last 7 days. Default `limit(100)` is applied if none is given; user-supplied limits are capped at 500. The `total` field is capped at 5000 to keep counts predictable \u2014 pass `total=false` to skip the count entirely.", "responses": { "200": { - "description": "VCS Content List", + "description": "Usage gauges list", "schema": { - "$ref": "#\/definitions\/vcsContentList" + "$ref": "#\/definitions\/usageGaugeList" } } }, "deprecated": false, "x-appwrite": { - "method": "getRepositoryContents", - "group": "repositories", - "weight": 574, + "method": "listGauges", + "group": "gauges", "cookies": false, "type": "", - "demo": "vcs\/get-repository-contents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "demo": "usage\/list-gauges.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "projectId:{project.$id}", + "scope": "usage.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", - "required": true, - "type": "string", - "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", + "name": "queries", + "description": "Array of query strings as JSON. Supported: equal(\"metric\", [...]), greaterThanEqual(\"time\", \"...\"), lessThanEqual(\"time\", \"...\"), orderAsc(\"time\"), orderDesc(\"time\"), limit(N), offset(N).", "required": false, - "type": "string", - "x-example": "<PROVIDER_ROOT_DIRECTORY>", - "default": "", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], "in": "query" }, { - "name": "providerReference", - "description": "Git reference (branch, tag, commit) to get contents from", + "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": "<PROVIDER_REFERENCE>", - "default": "", + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] } }, - "\/vcs\/github\/installations\/{installationId}\/repositories\/{repositoryId}": { - "patch": { - "summary": "Update external deployment (authorize)", - "operationId": "vcsUpdateExternalDeployments", - "consumes": [ - "application\/json" - ], + "\/users": { + "get": { + "summary": "List users", + "operationId": "usersList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vcs" + "users" ], - "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": "Get a list of all the project's users. You can use the query params to filter your results.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Users List", + "schema": { + "$ref": "#\/definitions\/userList" + } } }, "deprecated": false, "x-appwrite": { - "method": "updateExternalDeployments", - "group": "repositories", - "weight": 1219, + "method": "list", + "group": "users", "cookies": false, "type": "", - "demo": "vcs\/update-external-deployments.md", + "demo": "users\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "scope": "users.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/update-external-deployments.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", - "required": true, - "type": "string", - "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: name, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels, impersonator", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "repositoryId", - "description": "VCS Repository Id", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<REPOSITORY_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" }, { - "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": "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": { - "get": { - "summary": "List installations", - "operationId": "vcsListInstallations", - "consumes": [], + }, + "post": { + "summary": "Create user", + "operationId": "usersCreate", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "vcs" + "users" ], - "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": "Create a new user.", "responses": { - "200": { - "description": "Installations List", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/installationList" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "listInstallations", - "group": "installations", - "weight": 568, + "method": "create", + "group": "users", "cookies": false, "type": "", - "demo": "vcs\/list-installations.md", + "demo": "users\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-installations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.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: 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": "<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.", + "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.", + "default": "", + "x-example": null + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId" + ] + } } ] } }, - "\/vcs\/installations\/{installationId}": { - "get": { - "summary": "Get installation", - "operationId": "vcsGetInstallation", - "consumes": [], + "\/users\/argon2": { + "post": { + "summary": "Create user with Argon2 password", + "operationId": "usersCreateArgon2User", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "vcs" + "users" ], - "description": "Get a VCS installation by its unique ID. This endpoint returns the installation's details including its provider, organization, and configuration. ", + "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": "Installation", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/installation" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "getInstallation", - "group": "installations", - "weight": 567, + "method": "createArgon2User", + "group": "users", "cookies": false, "type": "", - "demo": "vcs\/get-installation.md", + "demo": "users\/create-argon-2-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-installation.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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.", + "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.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } } ] - }, - "delete": { - "summary": "Delete installation", - "operationId": "vcsDeleteInstallation", + } + }, + "\/users\/bcrypt": { + "post": { + "summary": "Create user with bcrypt password", + "operationId": "usersCreateBcryptUser", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "vcs" + "users" ], - "description": "Delete a VCS installation by its unique ID. This endpoint removes the installation and all its associated repositories from the project.", + "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": { - "204": { - "description": "No content" + "201": { + "description": "User", + "schema": { + "$ref": "#\/definitions\/user" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteInstallation", - "group": "installations", - "weight": 569, + "method": "createBcryptUser", + "group": "users", "cookies": false, "type": "", - "demo": "vcs\/delete-installation.md", + "demo": "users\/create-bcrypt-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/delete-installation.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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.", + "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.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } } ] } }, - "\/vectorsdb": { + "\/users\/identities": { "get": { - "summary": "List databases", - "operationId": "vectorsDBList", + "summary": "List identities", + "operationId": "usersListIdentities", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Get identities for all users.", "responses": { "200": { - "description": "Databases List", + "description": "Identities List", "schema": { - "$ref": "#\/definitions\/databaseList" + "$ref": "#\/definitions\/identityList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "vectorsdb", - "weight": 889, + "method": "listIdentities", + "group": "identities", "cookies": false, "type": "", - "demo": "vectorsdb\/list.md", + "demo": "users\/list-identities.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", "auth": { "Project": [] } @@ -72958,7 +70245,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 columns: name", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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", @@ -72987,47 +70274,43 @@ "in": "query" } ] - }, - "post": { - "summary": "Create database", - "operationId": "vectorsDBCreate", + } + }, + "\/users\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "usersDeleteIdentity", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "vectorsDB" + "users" ], - "description": "Create a new Database.\n", + "description": "Delete an identity by its unique ID.", "responses": { - "201": { - "description": "Database", - "schema": { - "$ref": "#\/definitions\/database" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "vectorsdb", - "weight": 885, + "method": "deleteIdentity", + "group": "identities", "cookies": false, "type": "", - "demo": "vectorsdb\/create.md", + "demo": "users\/delete-identity.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", "auth": { "Project": [] } @@ -73040,43 +70323,20 @@ ], "parameters": [ { - "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" - ] - } + "name": "identityId", + "description": "Identity ID.", + "required": true, + "type": "string", + "x-example": "<IDENTITY_ID>", + "in": "path" } ] } }, - "\/vectorsdb\/embeddings\/text": { + "\/users\/md5": { "post": { - "summary": "Create Text Embeddings", - "operationId": "vectorsDBCreateTextEmbeddings", + "summary": "Create user with MD5 password", + "operationId": "usersCreateMD5User", "consumes": [ "application\/json" ], @@ -73084,62 +70344,35 @@ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "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.", + "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": "Embedding list", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/embeddingList" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "createTextEmbeddings", - "group": "documents", - "weight": 911, + "method": "createMD5User", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/create-text-embeddings.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "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\/vectorsdb\/create-document.md", - "methods": [ - { - "name": "createTextEmbeddings", - "namespace": "vectorsDB", - "desc": "Create Text Embedding", - "auth": { - "Project": [] - }, - "parameters": [ - "texts", - "model" - ], - "required": [ - "texts" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/embeddingList" - } - ], - "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": "vectorsdb\/create-text-embeddings.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", "auth": { "Project": [] } @@ -73147,8 +70380,7 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -73158,75 +70390,80 @@ "schema": { "type": "object", "properties": { - "texts": { - "type": "array", - "description": "Array of text to generate embeddings.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } + "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>" }, - "model": { + "email": { "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": [] + "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.", + "default": "", + "x-example": "<NAME>" } }, "required": [ - "texts" + "userId", + "email", + "password" ] } } ] } }, - "\/vectorsdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "vectorsDBListTransactions", - "consumes": [], + "\/users\/phpass": { + "post": { + "summary": "Create user with PHPass password", + "operationId": "usersCreatePHPassUser", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "List transactions across all databases.", + "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": "Transaction List", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/transactionList" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 916, + "method": "createPHPassUser", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/list-transactions.md", + "demo": "users\/create-ph-pass-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "users.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-transactions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", "auth": { "Project": [] } @@ -73234,29 +70471,54 @@ "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": "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.", + "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.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } } ] - }, + } + }, + "\/users\/scrypt": { "post": { - "summary": "Create transaction", - "operationId": "vectorsDBCreateTransaction", + "summary": "Create user with Scrypt password", + "operationId": "usersCreateScryptUser", "consumes": [ "application\/json" ], @@ -73264,37 +70526,35 @@ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Create a new transaction.", + "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": { "201": { - "description": "Transaction", + "description": "User", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 912, + "method": "createScryptUser", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/create-transaction.md", + "demo": "users\/create-scrypt-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "users.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", "auth": { "Project": [] } @@ -73302,9 +70562,7 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -73314,59 +70572,114 @@ "schema": { "type": "object", "properties": { - "ttl": { + "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": "Seconds before the transaction expires.", - "default": 300, - "x-example": 60, + "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.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordCpu", + "passwordMemory", + "passwordParallel", + "passwordLength" + ] } } ] } }, - "\/vectorsdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "vectorsDBGetTransaction", - "consumes": [], + "\/users\/scrypt-modified": { + "post": { + "summary": "Create user with Scrypt modified password", + "operationId": "usersCreateScryptModifiedUser", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Get a transaction by its unique ID.", + "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": "Transaction", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 913, + "method": "createScryptModifiedUser", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/get-transaction.md", + "demo": "users\/create-scrypt-modified-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "users.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", "auth": { "Project": [] } @@ -73374,25 +70687,72 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "type": "string", - "x-example": "<TRANSACTION_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.", + "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.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordSaltSeparator", + "passwordSignerKey" + ] + } } ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "vectorsDBUpdateTransaction", + } + }, + "\/users\/sha": { + "post": { + "summary": "Create user with SHA password", + "operationId": "usersCreateSHAUser", "consumes": [ "application\/json" ], @@ -73400,37 +70760,35 @@ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "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": "Transaction", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 914, + "method": "createSHAUser", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/update-transaction.md", + "demo": "users\/create-sha-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "users.write", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-sha-user.md", "auth": { "Project": [] } @@ -73438,145 +70796,172 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "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 + "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>" }, - "rollback": { - "type": "boolean", - "description": "Rollback transaction?", - "default": false, - "x-example": false + "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" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } ] - }, - "delete": { - "summary": "Delete transaction", - "operationId": "vectorsDBDeleteTransaction", - "consumes": [ - "application\/json" + } + }, + "\/users\/usage": { + "get": { + "summary": "Get users usage stats", + "operationId": "usersGetUsage", + "consumes": [], + "produces": [ + "application\/json" ], - "produces": [], "tags": [ - "vectorsDB" + "users" ], - "description": "Delete a transaction 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": "deleteTransaction", - "group": "transactions", - "weight": 915, + "method": "getUsage", + "group": null, "cookies": false, "type": "", - "demo": "vectorsdb\/delete-transaction.md", + "demo": "users\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "users.read", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "type": "string", - "x-example": "<TRANSACTION_ID>", - "in": "path" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "default": "30d", + "in": "query" } ] } }, - "\/vectorsdb\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "vectorsDBCreateOperations", - "consumes": [ - "application\/json" - ], + "\/users\/{userId}": { + "get": { + "summary": "Get user", + "operationId": "usersGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Create multiple operations in a single transaction.", + "description": "Get a user by its unique ID.", "responses": { - "201": { - "description": "Transaction", + "200": { + "description": "User", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", - "weight": 917, + "method": "get", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/create-operations.md", + "demo": "users\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.write", + "scope": "users.read", "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-operations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", "auth": { "Project": [] } @@ -73584,174 +70969,116 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", + "x-example": "<USER_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" - } - } - } - } } ] - } - }, - "\/vectorsdb\/usage": { - "get": { - "summary": "Get VectorsDB usage stats", - "operationId": "vectorsDBListUsage", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete user", + "operationId": "usersDelete", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "vectorsDB" + "users" ], - "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.", + "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": "UsageVectorsDBs", - "schema": { - "$ref": "#\/definitions\/usageVectorsDBs" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listUsage", - "group": null, - "weight": 891, + "method": "delete", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/list-usage.md", + "demo": "users\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-usage.md", - "methods": [ - { - "name": "listUsage", - "namespace": "vectorsDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "range" - ], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/usageVectorsDBs" - } - ], - "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": "vectorsdb\/list-usage.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "userId", + "description": "User 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": "<USER_ID>", + "in": "path" } ] } }, - "\/vectorsdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "vectorsDBGet", - "consumes": [], + "\/users\/{userId}\/email": { + "patch": { + "summary": "Update email", + "operationId": "usersUpdateEmail", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Update the user email by its unique ID.", "responses": { "200": { - "description": "Database", + "description": "User", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "vectorsdb", - "weight": 886, + "method": "updateEmail", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/get.md", + "demo": "users\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", "auth": { "Project": [] } @@ -73764,18 +71091,38 @@ ], "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": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + } + }, + "required": [ + "email" + ] + } } ] - }, - "put": { - "summary": "Update database", - "operationId": "vectorsDBUpdate", + } + }, + "\/users\/{userId}\/impersonator": { + "patch": { + "summary": "Update user impersonator capability", + "operationId": "usersUpdateImpersonator", "consumes": [ "application\/json" ], @@ -73783,36 +71130,35 @@ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Update a database by its unique ID.", + "description": "Enable or disable whether a user can impersonate other users. When impersonation headers are used, the request runs as the target user for API behavior, while internal audit logs still attribute the action to the original impersonator and store the impersonated target details only in internal audit payload data.\n", "responses": { "200": { - "description": "Database", + "description": "User", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "vectorsdb", - "weight": 887, + "method": "updateImpersonator", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/update.md", + "demo": "users\/update-impersonator.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-impersonator.md", "auth": { "Project": [] } @@ -73825,11 +71171,11 @@ ], "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" }, { @@ -73838,61 +71184,60 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Database name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "enabled": { + "impersonator": { "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": "Whether the user can impersonate other users. When true, the user can browse project users to choose a target and can pass impersonation headers to act as that user. Internal audit logs still attribute impersonated actions to the original impersonator and store the target user details only in internal audit payload data.", "x-example": false } }, "required": [ - "name" + "impersonator" ] } } ] - }, - "delete": { - "summary": "Delete database", - "operationId": "vectorsDBDelete", + } + }, + "\/users\/{userId}\/jwts": { + "post": { + "summary": "Create user JWT", + "operationId": "usersCreateJWT", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "vectorsDB" + "users" ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "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", + "schema": { + "$ref": "#\/definitions\/jwt" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "vectorsdb", - "weight": 888, + "method": "createJWT", + "group": "sessions", "cookies": false, "type": "", - "demo": "vectorsdb\/delete.md", + "demo": "users\/create-jwt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", "auth": { "Project": [] } @@ -73905,55 +71250,78 @@ ], "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": "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" + } + } + } } ] } }, - "\/vectorsdb\/{databaseId}\/collections": { - "get": { - "summary": "List collections", - "operationId": "vectorsDBListCollections", - "consumes": [], + "\/users\/{userId}\/labels": { + "put": { + "summary": "Update user labels", + "operationId": "usersUpdateLabels", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "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": "VectorsDB Collections List", + "description": "User", "schema": { - "$ref": "#\/definitions\/vectorsdbCollectionList" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "listCollections", - "group": "collections", - "weight": 896, + "method": "updateLabels", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/list-collections.md", + "demo": "users\/update-labels.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-collections.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", "auth": { "Project": [] } @@ -73966,85 +71334,74 @@ ], "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": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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" + "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.", + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } } ] - }, - "post": { - "summary": "Create collection", - "operationId": "vectorsDBCreateCollection", - "consumes": [ - "application\/json" - ], + } + }, + "\/users\/{userId}\/logs": { + "get": { + "summary": "List user logs", + "operationId": "usersListLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "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.", + "description": "Get the user activity logs list by its unique ID.", "responses": { - "201": { - "description": "VectorsDB Collection", + "200": { + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/vectorsdbCollection" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "createCollection", - "group": "collections", - "weight": 892, + "method": "listLogs", + "group": "logs", "cookies": false, "type": "", - "demo": "vectorsdb\/create-collection.md", + "demo": "users\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", "auth": { "Project": [] } @@ -74057,109 +71414,75 @@ ], "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": "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" - ] - } + "name": "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" } ] } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}": { + "\/users\/{userId}\/memberships": { "get": { - "summary": "Get collection", - "operationId": "vectorsDBGetCollection", + "summary": "List user memberships", + "operationId": "usersListMemberships", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "description": "Get the user membership list by its unique ID.", "responses": { "200": { - "description": "VectorsDB Collection", + "description": "Memberships List", "schema": { - "$ref": "#\/definitions\/vectorsdbCollection" + "$ref": "#\/definitions\/membershipList" } } }, "deprecated": false, "x-appwrite": { - "method": "getCollection", - "group": "collections", - "weight": 893, + "method": "listMemberships", + "group": "memberships", "cookies": false, "type": "", - "demo": "vectorsdb\/get-collection.md", + "demo": "users\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-collection.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", "auth": { "Project": [] } @@ -74172,26 +71495,50 @@ ], "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": "collectionId", - "description": "Collection 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, + "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": "<COLLECTION_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 collection", - "operationId": "vectorsDBUpdateCollection", + } + }, + "\/users\/{userId}\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "usersUpdateMfa", "consumes": [ "application\/json" ], @@ -74199,36 +71546,95 @@ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Update a collection by its unique ID.", + "description": "Enable or disable MFA on a user account.", "responses": { "200": { - "description": "VectorsDB Collection", + "description": "User", "schema": { - "$ref": "#\/definitions\/vectorsdbCollection" + "$ref": "#\/definitions\/user" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateCollection", - "group": "collections", - "weight": 894, + "method": "updateMfa", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/update-collection.md", + "demo": "users\/update-mfa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-collection.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": [] } @@ -74241,19 +71647,11 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<USER_ID>", "in": "path" }, { @@ -74262,83 +71660,113 @@ "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": { + "mfa": { "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, + "description": "Enable or disable MFA.", "x-example": false } }, "required": [ - "name" + "mfa" ] } } ] - }, + } + }, + "\/users\/{userId}\/mfa\/authenticators\/{type}": { "delete": { - "summary": "Delete collection", - "operationId": "vectorsDBDeleteCollection", + "summary": "Delete authenticator", + "operationId": "usersDeleteMfaAuthenticator", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "vectorsDB" + "users" ], - "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Delete an authenticator app.", "responses": { "204": { "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "deleteCollection", - "group": "collections", - "weight": 895, + "method": "deleteMfaAuthenticator", + "group": "mfa", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-collection.md", + "demo": "users\/delete-mfa-authenticator.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-collection.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": [] } @@ -74351,64 +71779,122 @@ ], "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": "collectionId", - "description": "Collection ID.", + "name": "type", + "description": "Type of authenticator.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "totp", + "enum": [ + "totp" + ], + "x-enum-name": "AuthenticatorType", "in": "path" } ] } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "\/users\/{userId}\/mfa\/factors": { "get": { - "summary": "List documents", - "operationId": "vectorsDBListDocuments", + "summary": "List factors", + "operationId": "usersListMfaFactors", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "description": "List the factors available on the account to be used as a MFA challange.", "responses": { "200": { - "description": "Documents List", + "description": "MFAFactors", "schema": { - "$ref": "#\/definitions\/documentList" + "$ref": "#\/definitions\/mfaFactors" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listDocuments", - "group": "documents", - "weight": 906, + "method": "listMfaFactors", + "group": "mfa", "cookies": false, "type": "", - "demo": "vectorsdb\/list-documents.md", + "demo": "users\/list-mfa-factors.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "users.read", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-documents.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": [] } @@ -74416,166 +71902,112 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "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).", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_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.", - "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" } ] - }, - "post": { - "summary": "Create document", - "operationId": "vectorsDBCreateDocument", - "consumes": [ - "application\/json" - ], + } + }, + "\/users\/{userId}\/mfa\/recovery-codes": { + "get": { + "summary": "Get MFA recovery codes", + "operationId": "usersGetMfaRecoveryCodes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "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.", + "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": { - "201": { - "description": "Document", + "200": { + "description": "MFA Recovery Codes", "schema": { - "$ref": "#\/definitions\/document" + "$ref": "#\/definitions\/mfaRecoveryCodes" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createDocument", - "group": "documents", - "weight": 902, + "method": "getMfaRecoveryCodes", + "group": "mfa", "cookies": false, "type": "", - "demo": "vectorsdb\/create-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.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", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-document.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": "createDocument", - "namespace": "vectorsDB", - "desc": "Create document", + "name": "getMfaRecoveryCodes", + "namespace": "users", + "desc": "", "auth": { "Project": [] }, "parameters": [ - "databaseId", - "collectionId", - "documentId", - "data", - "permissions" + "userId" ], "required": [ - "databaseId", - "collectionId", - "documentId", - "data" + "userId" ], "responses": [ { - "code": 201, - "model": "#\/definitions\/document" + "code": 200, + "model": "#\/definitions\/mfaRecoveryCodes" } ], - "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": "vectorsdb\/create-document.md", - "public": true + "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": "createDocuments", - "namespace": "vectorsDB", - "desc": "Create documents", + "name": "getMFARecoveryCodes", + "namespace": "users", + "desc": "", "auth": { "Project": [] }, "parameters": [ - "databaseId", - "collectionId", - "documents" + "userId" ], "required": [ - "databaseId", - "collectionId", - "documents" + "userId" ], "responses": [ { - "code": 201, - "model": "#\/definitions\/documentList" + "code": 200, + "model": "#\/definitions\/mfaRecoveryCodes" } ], - "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": "vectorsdb\/create-documents.md", + "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 } ], @@ -74586,78 +72018,23 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "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). Make sure to define attributes before creating documents.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<USER_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>" - } - } - } } ] }, "put": { - "summary": "Upsert documents", - "operationId": "vectorsDBUpsertDocuments", + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "usersUpdateMfaRecoveryCodes", "consumes": [ "application\/json" ], @@ -74665,64 +72042,89 @@ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "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", + "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": "Documents List", + "200": { + "description": "MFA Recovery Codes", "schema": { - "$ref": "#\/definitions\/documentList" + "$ref": "#\/definitions\/mfaRecoveryCodes" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "upsertDocuments", - "group": "documents", - "weight": 909, + "method": "updateMfaRecoveryCodes", + "group": "mfa", "cookies": false, "type": "", - "demo": "vectorsdb\/upsert-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/upsert-documents.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": "upsertDocuments", - "namespace": "vectorsDB", + "name": "updateMfaRecoveryCodes", + "namespace": "users", "desc": "", "auth": { "Project": [] }, "parameters": [ - "databaseId", - "collectionId", - "documents", - "transactionId" + "userId" ], "required": [ - "databaseId", - "collectionId", - "documents" + "userId" ], "responses": [ { - "code": 201, - "model": "#\/definitions\/documentList" + "code": 200, + "model": "#\/definitions\/mfaRecoveryCodes" } ], - "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": "vectorsdb\/upsert-documents.md", - "public": true + "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": { @@ -74737,53 +72139,18 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<USER_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" - ] - } } ] }, "patch": { - "summary": "Update documents", - "operationId": "vectorsDBUpdateDocuments", + "summary": "Create MFA recovery codes", + "operationId": "usersCreateMfaRecoveryCodes", "consumes": [ "application\/json" ], @@ -74791,36 +72158,91 @@ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "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.", + "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": "Documents List", + "201": { + "description": "MFA Recovery Codes", "schema": { - "$ref": "#\/definitions\/documentList" + "$ref": "#\/definitions\/mfaRecoveryCodes" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateDocuments", - "group": "documents", - "weight": 908, + "method": "createMfaRecoveryCodes", + "group": "mfa", "cookies": false, "type": "", - "demo": "vectorsdb\/update-documents.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "users\/create-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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-documents.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": [] } @@ -74833,56 +72255,20 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<USER_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>" - } - } - } } ] - }, - "delete": { - "summary": "Delete documents", - "operationId": "vectorsDBDeleteDocuments", + } + }, + "\/users\/{userId}\/name": { + "patch": { + "summary": "Update name", + "operationId": "usersUpdateName", "consumes": [ "application\/json" ], @@ -74890,36 +72276,35 @@ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "description": "Update the user name by its unique ID.", "responses": { "200": { - "description": "Documents List", + "description": "User", "schema": { - "$ref": "#\/definitions\/documentList" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDocuments", - "group": "documents", - "weight": 910, + "method": "updateName", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-documents.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.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\/vectorsdb\/delete-documents.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", "auth": { "Project": [] } @@ -74932,19 +72317,11 @@ ], "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).", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<USER_ID>", "in": "path" }, { @@ -74953,67 +72330,60 @@ "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": { + "name": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "name" + ] } } ] } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { - "get": { - "summary": "Get document", - "operationId": "vectorsDBGetDocument", - "consumes": [], + "\/users\/{userId}\/password": { + "patch": { + "summary": "Update password", + "operationId": "usersUpdatePassword", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "description": "Update the user password by its unique ID.", "responses": { "200": { - "description": "Document", + "description": "User", "schema": { - "$ref": "#\/definitions\/document" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "getDocument", - "group": "documents", - "weight": 905, + "method": "updatePassword", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/get-document.md", + "demo": "users\/update-password.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "documents.read", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", "auth": { "Project": [] } @@ -75021,61 +72391,42 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "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": "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" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "New user password. Must be at least 8 chars.", + "x-example": null + } + }, + "required": [ + "password" + ] + } } ] - }, - "put": { - "summary": "Upsert a document", - "operationId": "vectorsDBUpsertDocument", + } + }, + "\/users\/{userId}\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "usersUpdatePhone", "consumes": [ "application\/json" ], @@ -75083,69 +72434,35 @@ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "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.", + "description": "Update the user phone by its unique ID.", "responses": { - "201": { - "description": "Document", + "200": { + "description": "User", "schema": { - "$ref": "#\/definitions\/document" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "upsertDocument", - "group": "documents", - "weight": 904, + "method": "updatePhone", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/upsert-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "users\/update-phone.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\/vectorsdb\/upsert-document.md", - "methods": [ - { - "name": "upsertDocument", - "namespace": "vectorsDB", - "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": "vectorsdb\/upsert-document.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", "auth": { "Project": [] } @@ -75153,34 +72470,16 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "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.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<DOCUMENT_ID>", + "x-example": "<USER_ID>", "in": "path" }, { @@ -75189,73 +72488,59 @@ "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": { + "number": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "description": "User phone number.", + "x-example": "+12065550100", + "format": "phone" } - } + }, + "required": [ + "number" + ] } } ] - }, - "patch": { - "summary": "Update document", - "operationId": "vectorsDBUpdateDocument", - "consumes": [ - "application\/json" - ], + } + }, + "\/users\/{userId}\/prefs": { + "get": { + "summary": "Get user preferences", + "operationId": "usersGetPrefs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Get the user preferences by its unique ID.", "responses": { "200": { - "description": "Document", + "description": "Preferences", "schema": { - "$ref": "#\/definitions\/document" + "$ref": "#\/definitions\/preferences" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDocument", - "group": "documents", - "weight": 903, + "method": "getPrefs", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/update-document.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "users\/get-prefs.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\/vectorsdb\/update-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", "auth": { "Project": [] } @@ -75263,104 +72548,59 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "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.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<DOCUMENT_ID>", + "x-example": "<USER_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>" - } - } - } } ] }, - "delete": { - "summary": "Delete document", - "operationId": "vectorsDBDeleteDocument", + "patch": { + "summary": "Update user preferences", + "operationId": "usersUpdatePrefs", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "vectorsDB" + "users" ], - "description": "Delete a document 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": "deleteDocument", - "group": "documents", - "weight": 907, + "method": "updatePrefs", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-document.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "documents.write", + "demo": "users\/update-prefs.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\/vectorsdb\/delete-document.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", "auth": { "Project": [] } @@ -75368,34 +72608,16 @@ "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "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>", - "in": "path" - }, - { - "name": "documentId", - "description": "Document ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<DOCUMENT_ID>", + "x-example": "<USER_ID>", "in": "path" }, { @@ -75404,57 +72626,62 @@ "schema": { "type": "object", "properties": { - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>" + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "default": {}, + "x-example": "{}" } - } + }, + "required": [ + "prefs" + ] } } ] } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "\/users\/{userId}\/sessions": { "get": { - "summary": "List indexes", - "operationId": "vectorsDBListIndexes", + "summary": "List user sessions", + "operationId": "usersListSessions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "description": "List indexes in the collection.", + "description": "Get the user sessions list by its unique ID.", "responses": { "200": { - "description": "Indexes List", + "description": "Sessions List", "schema": { - "$ref": "#\/definitions\/indexList" + "$ref": "#\/definitions\/sessionList" } } }, "deprecated": false, "x-appwrite": { - "method": "listIndexes", - "group": "indexes", - "weight": 901, + "method": "listSessions", + "group": "sessions", "cookies": false, "type": "", - "demo": "vectorsdb\/list-indexes.md", + "demo": "users\/list-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": [ + "users.read", + "sessions.read" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-indexes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", "auth": { "Project": [] } @@ -75467,33 +72694,13 @@ ], "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).", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_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: 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.", @@ -75506,8 +72713,8 @@ ] }, "post": { - "summary": "Create index", - "operationId": "vectorsDBCreateIndex", + "summary": "Create session", + "operationId": "usersCreateSession", "consumes": [ "application\/json" ], @@ -75515,36 +72722,38 @@ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "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`.", + "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": { - "202": { - "description": "Index", + "201": { + "description": "Session", "schema": { - "$ref": "#\/definitions\/index" + "$ref": "#\/definitions\/session" } } }, "deprecated": false, "x-appwrite": { - "method": "createIndex", - "group": "indexes", - "weight": 898, + "method": "createSession", + "group": "sessions", "cookies": false, "type": "", - "demo": "vectorsdb\/create-index.md", + "demo": "users\/create-session.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": [ + "users.write", + "sessions.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", "auth": { "Project": [] } @@ -75557,132 +72766,52 @@ ], "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).", + "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": "<COLLECTION_ID>", + "x-example": "<USER_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": "VectorsDBIndexType", - "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" - ] - } } ] - } - }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { - "get": { - "summary": "Get index", - "operationId": "vectorsDBGetIndex", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete user sessions", + "operationId": "usersDeleteSessions", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "vectorsDB" + "users" ], - "description": "Get index by ID.", + "description": "Delete all user's sessions by using the user's unique ID.", "responses": { - "200": { - "description": "Index", - "schema": { - "$ref": "#\/definitions\/index" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getIndex", - "group": "indexes", - "weight": 899, + "method": "deleteSessions", + "group": "sessions", "cookies": false, "type": "", - "demo": "vectorsdb\/get-index.md", + "demo": "users\/delete-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": [ + "users.write", + "sessions.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", "auth": { "Project": [] } @@ -75695,41 +72824,28 @@ ], "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": "key", - "description": "Index Key.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", + "x-example": "<USER_ID>", "in": "path" } ] - }, + } + }, + "\/users\/{userId}\/sessions\/{sessionId}": { "delete": { - "summary": "Delete index", - "operationId": "vectorsDBDeleteIndex", + "summary": "Delete user session", + "operationId": "usersDeleteSession", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "vectorsDB" + "users" ], - "description": "Delete an index.", + "description": "Delete a user sessions by its unique ID.", "responses": { "204": { "description": "No content" @@ -75737,23 +72853,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteIndex", - "group": "indexes", - "weight": 900, + "method": "deleteSession", + "group": "sessions", "cookies": false, "type": "", - "demo": "vectorsdb\/delete-index.md", + "demo": "users\/delete-session.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": [ + "users.write", + "sessions.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", "auth": { "Project": [] } @@ -75766,261 +72884,141 @@ ], "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).", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<COLLECTION_ID>", + "x-example": "<USER_ID>", "in": "path" }, { - "name": "key", - "description": "Index Key.", + "name": "sessionId", + "description": "Session ID.", "required": true, "type": "string", + "x-example": "<SESSION_ID>", "in": "path" } ] } }, - "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/usage": { - "get": { - "summary": "Get collection usage stats", - "operationId": "vectorsDBGetCollectionUsage", - "consumes": [], + "\/users\/{userId}\/status": { + "patch": { + "summary": "Update user status", + "operationId": "usersUpdateStatus", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "vectorsDB" + "users" ], - "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.", + "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": { "200": { - "description": "UsageCollection", + "description": "User", "schema": { - "$ref": "#\/definitions\/usageCollection" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "getCollectionUsage", - "group": null, - "weight": 897, + "method": "updateStatus", + "group": "users", "cookies": false, "type": "", - "demo": "vectorsdb\/get-collection-usage.md", + "demo": "users\/update-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-collection-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.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": "collectionId", - "description": "Collection ID.", - "required": true, - "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" - } - ] - } - }, - "\/vectorsdb\/{databaseId}\/usage": { - "get": { - "summary": "Get VectorsDB usage stats", - "operationId": "vectorsDBGetUsage", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "vectorsDB" - ], - "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": { - "200": { - "description": "UsageVectorsDB", + "name": "payload", + "in": "body", "schema": { - "$ref": "#\/definitions\/usageVectorsDB" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 890, - "cookies": false, - "type": "", - "demo": "vectorsdb\/get-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-database-usage.md", - "methods": [ - { - "name": "getUsage", - "namespace": "vectorsDB", - "desc": "", - "auth": { - "Project": [] + "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 + } }, - "parameters": [ - "databaseId", - "range" - ], "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/usageVectorsDB" - } - ], - "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": "vectorsdb\/get-usage.md", - "public": true + "status" + ] } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "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" } ] } }, - "\/webhooks": { + "\/users\/{userId}\/targets": { "get": { - "summary": "List webhooks", - "operationId": "webhooksList", + "summary": "List user targets", + "operationId": "usersListTargets", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "webhooks" + "users" ], - "description": "Get a list of all webhooks belonging to the project. You can use the query params to filter your results.", + "description": "List the messaging targets that are associated with a user.", "responses": { "200": { - "description": "Webhooks List", + "description": "Target list", "schema": { - "$ref": "#\/definitions\/webhookList" + "$ref": "#\/definitions\/targetList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": null, - "weight": 578, + "method": "listTargets", + "group": "targets", "cookies": false, "type": "", - "demo": "webhooks\/list.md", + "demo": "users\/list-targets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.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-user-targets.md", "auth": { "Project": [] } @@ -76032,9 +73030,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, url, authUsername, tls, events, enabled, logs, attempts", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn 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", @@ -76056,8 +73062,8 @@ ] }, "post": { - "summary": "Create webhook", - "operationId": "webhooksCreate", + "summary": "Create user target", + "operationId": "usersCreateTarget", "consumes": [ "application\/json" ], @@ -76065,35 +73071,35 @@ "application\/json" ], "tags": [ - "webhooks" + "users" ], - "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 messaging target.", "responses": { "201": { - "description": "Webhook", + "description": "Target", "schema": { - "$ref": "#\/definitions\/webhook" + "$ref": "#\/definitions\/target" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": null, - "weight": 577, + "method": "createTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "webhooks\/create.md", + "demo": "users\/create-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.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-target.md", "auth": { "Project": [] } @@ -76105,120 +73111,102 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "webhookId": { + "targetId": { "type": "string", - "description": "Webhook ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<WEBHOOK_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>" }, - "url": { + "providerType": { "type": "string", - "description": "Webhook URL.", - "default": null, - "x-example": null + "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" }, - "name": { + "identifier": { "type": "string", - "description": "Webhook name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } - }, - "enabled": { - "type": "boolean", - "description": "Enable or disable a webhook.", - "default": true, - "x-example": false - }, - "tls": { - "type": "boolean", - "description": "Certificate verification, false for disabled or true for enabled.", - "default": false, - "x-example": false + "description": "The target identifier (token, email, phone etc.)", + "x-example": "<IDENTIFIER>" }, - "authUsername": { + "providerId": { "type": "string", - "description": "Webhook HTTP user. Max length: 256 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": "<AUTH_USERNAME>" + "x-example": "<PROVIDER_ID>" }, - "authPassword": { + "name": { "type": "string", - "description": "Webhook HTTP password. Max length: 256 chars.", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", "default": "", - "x-example": "<AUTH_PASSWORD>" - }, - "secret": { - "type": "string", - "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", - "default": null, - "x-example": "<SECRET>", - "x-nullable": true + "x-example": "<NAME>" } }, "required": [ - "webhookId", - "url", - "name", - "events" + "targetId", + "providerType", + "identifier" ] } } ] } }, - "\/webhooks\/{webhookId}": { + "\/users\/{userId}\/targets\/{targetId}": { "get": { - "summary": "Get webhook", - "operationId": "webhooksGet", + "summary": "Get user target", + "operationId": "usersGetTarget", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "webhooks" + "users" ], - "description": "Get a webhook by its unique ID. This endpoint returns details about a specific webhook configured for a project. ", + "description": "Get a user's push notification target by ID.", "responses": { "200": { - "description": "Webhook", + "description": "Target", "schema": { - "$ref": "#\/definitions\/webhook" + "$ref": "#\/definitions\/target" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 579, + "method": "getTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "webhooks\/get.md", + "demo": "users\/get-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.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-target.md", "auth": { "Project": [] } @@ -76231,18 +73219,26 @@ ], "parameters": [ { - "name": "webhookId", - "description": "Webhook ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<WEBHOOK_ID>", + "x-example": "<USER_ID>", + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "type": "string", + "x-example": "<TARGET_ID>", "in": "path" } ] }, - "put": { - "summary": "Update webhook", - "operationId": "webhooksUpdate", + "patch": { + "summary": "Update user target", + "operationId": "usersUpdateTarget", "consumes": [ "application\/json" ], @@ -76250,35 +73246,35 @@ "application\/json" ], "tags": [ - "webhooks" + "users" ], - "description": "Update a webhook by its unique ID. Use this endpoint to update the URL, events, or status of an existing webhook.", + "description": "Update a messaging target.", "responses": { "200": { - "description": "Webhook", + "description": "Target", "schema": { - "$ref": "#\/definitions\/webhook" + "$ref": "#\/definitions\/target" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": null, - "weight": 581, + "method": "updateTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "webhooks\/update.md", + "demo": "users\/update-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.write", + "scope": "targets.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", "auth": { "Project": [] } @@ -76291,11 +73287,19 @@ ], "parameters": [ { - "name": "webhookId", - "description": "Webhook ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<WEBHOOK_ID>", + "x-example": "<USER_ID>", + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "type": "string", + "x-example": "<TARGET_ID>", "in": "path" }, { @@ -76304,72 +73308,40 @@ "schema": { "type": "object", "properties": { - "name": { + "identifier": { "type": "string", - "description": "Webhook name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "description": "The target identifier (token, email, phone etc.)", + "default": "", + "x-example": "<IDENTIFIER>" }, - "url": { + "providerId": { "type": "string", - "description": "Webhook URL.", - "default": null, - "x-example": null - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } - }, - "enabled": { - "type": "boolean", - "description": "Enable or disable a webhook.", - "default": true, - "x-example": false + "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>" }, - "tls": { - "type": "boolean", - "description": "Certificate verification, false for disabled or true for enabled.", - "default": false, - "x-example": false - }, - "authUsername": { - "type": "string", - "description": "Webhook HTTP user. Max length: 256 chars.", - "default": "", - "x-example": "<AUTH_USERNAME>" - }, - "authPassword": { + "name": { "type": "string", - "description": "Webhook HTTP password. Max length: 256 chars.", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", "default": "", - "x-example": "<AUTH_PASSWORD>" + "x-example": "<NAME>" } - }, - "required": [ - "name", - "url", - "events" - ] + } } } ] }, "delete": { - "summary": "Delete webhook", - "operationId": "webhooksDelete", + "summary": "Delete user target", + "operationId": "usersDeleteTarget", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "webhooks" + "users" ], - "description": "Delete a webhook by its unique ID. Once deleted, the webhook will no longer receive project events. ", + "description": "Delete a messaging target.", "responses": { "204": { "description": "No content" @@ -76377,22 +73349,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": null, - "weight": 580, + "method": "deleteTarget", + "group": "targets", "cookies": false, "type": "", - "demo": "webhooks\/delete.md", + "demo": "users\/delete-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.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-target.md", "auth": { "Project": [] } @@ -76405,20 +73377,28 @@ ], "parameters": [ { - "name": "webhookId", - "description": "Webhook ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<WEBHOOK_ID>", + "x-example": "<USER_ID>", + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "type": "string", + "x-example": "<TARGET_ID>", "in": "path" } ] } }, - "\/webhooks\/{webhookId}\/secret": { - "patch": { - "summary": "Update webhook secret key", - "operationId": "webhooksUpdateSecret", + "\/users\/{userId}\/tokens": { + "post": { + "summary": "Create token", + "operationId": "usersCreateToken", "consumes": [ "application\/json" ], @@ -76426,35 +73406,35 @@ "application\/json" ], "tags": [ - "webhooks" + "users" ], - "description": "Update the webhook signing key. This endpoint can be used to regenerate the signing key used to sign and validate payload deliveries for a specific webhook.", + "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": "Webhook", + "201": { + "description": "Token", "schema": { - "$ref": "#\/definitions\/webhook" + "$ref": "#\/definitions\/token" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSecret", - "group": null, - "weight": 582, + "method": "createToken", + "group": "sessions", "cookies": false, "type": "", - "demo": "webhooks\/update-secret.md", + "demo": "users\/create-token.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "webhooks.write", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", "auth": { "Project": [] } @@ -76467,11 +73447,11 @@ ], "parameters": [ { - "name": "webhookId", - "description": "Webhook ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<WEBHOOK_ID>", + "x-example": "<USER_ID>", "in": "path" }, { @@ -76480,249 +73460,4721 @@ "schema": { "type": "object", "properties": { - "secret": { - "type": "string", - "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", - "default": null, - "x-example": "<SECRET>", - "x-nullable": true + "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" } } } } ] } - } - }, - "tags": [ - { - "name": "account", - "description": "The Account service allows you to authenticate and manage a user account." - }, - { - "name": "avatars", - "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." - }, - { - "name": "databases", - "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" - }, - { - "name": "tablesdb", - "description": "The TablesDB service allows you to create structured tables of columns, query and filter lists of rows" }, - { - "name": "locale", - "description": "The Locale service allows you to customize your app based on your users' location." - }, - { - "name": "health", - "description": "The Health service allows you to both validate and monitor your Appwrite server's health." - }, - { - "name": "projects", - "description": "The Project service allows you to manage all the projects in your Appwrite server." - }, - { - "name": "project", - "description": "The Project service allows you to manage all the projects in your Appwrite server." - }, - { - "name": "storage", - "description": "The Storage service allows you to manage your project files." - }, - { - "name": "teams", - "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" - }, - { - "name": "users", - "description": "The Users service allows you to manage your project users." - }, - { - "name": "sites", - "description": "The Sites Service allows you view, create and manage your web applications." - }, - { - "name": "functions", - "description": "The Functions Service allows you view, create and manage your Cloud Functions." - }, - { - "name": "proxy", - "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." - }, - { - "name": "graphql", - "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." - }, - { - "name": "console", - "description": "The Console service allows you to interact with console relevant information." - }, - { - "name": "migrations", - "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." - }, - { - "name": "messaging", - "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." - }, - { - "name": "advisor", - "description": "The Advisor service surfaces actionable reports about your project resources, with CTA descriptors for one-click remediation in the console." - } - ], - "definitions": { - "any": { - "description": "Any", - "type": "object", - "additionalProperties": true, - "example": [] - }, - "rowList": { - "description": "Rows List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of rows that matched your query.", - "x-example": 5, - "format": "int32" + "\/users\/{userId}\/verification": { + "patch": { + "summary": "Update email verification", + "operationId": "usersUpdateEmailVerification", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "users" + ], + "description": "Update the user email verification status by its unique ID.", + "responses": { + "200": { + "description": "User", + "schema": { + "$ref": "#\/definitions\/user" + } + } }, - "rows": { - "type": "array", - "description": "List of rows.", - "items": { - "type": "object", - "$ref": "#\/definitions\/row" - }, - "x-example": "" - } - }, - "required": [ - "total", - "rows" - ], - "example": { - "total": 5, - "rows": "" - } - }, - "documentList": { - "description": "Documents List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of documents that matched your query.", - "x-example": 5, - "format": "int32" + "deprecated": false, + "x-appwrite": { + "method": "updateEmailVerification", + "group": "users", + "cookies": false, + "type": "", + "demo": "users\/update-email-verification.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-email-verification.md", + "auth": { + "Project": [] + } }, - "documents": { - "type": "array", - "description": "List of documents.", - "items": { - "type": "object", - "$ref": "#\/definitions\/document" + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" }, - "x-example": "" - } - }, - "required": [ - "total", - "documents" - ], - "example": { - "total": 5, - "documents": "" + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "emailVerification": { + "type": "boolean", + "description": "User email verification status.", + "x-example": false + } + }, + "required": [ + "emailVerification" + ] + } + } + ] } }, - "presenceList": { - "description": "Presences List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of presences that matched your query.", - "x-example": 5, - "format": "int32" + "\/users\/{userId}\/verification\/phone": { + "patch": { + "summary": "Update phone verification", + "operationId": "usersUpdatePhoneVerification", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "users" + ], + "description": "Update the user phone verification status by its unique ID.", + "responses": { + "200": { + "description": "User", + "schema": { + "$ref": "#\/definitions\/user" + } + } }, - "presences": { - "type": "array", - "description": "List of presences.", - "items": { - "type": "object", - "$ref": "#\/definitions\/presence" - }, - "x-example": "" - } - }, - "required": [ - "total", - "presences" - ], - "example": { - "total": 5, - "presences": "" - } - }, - "tableList": { - "description": "Tables List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of tables that matched your query.", - "x-example": 5, - "format": "int32" + "deprecated": false, + "x-appwrite": { + "method": "updatePhoneVerification", + "group": "users", + "cookies": false, + "type": "", + "demo": "users\/update-phone-verification.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-phone-verification.md", + "auth": { + "Project": [] + } }, - "tables": { - "type": "array", - "description": "List of tables.", - "items": { - "type": "object", - "$ref": "#\/definitions\/table" + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" }, - "x-example": "" - } - }, - "required": [ - "total", - "tables" - ], - "example": { - "total": 5, - "tables": "" + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "phoneVerification": { + "type": "boolean", + "description": "User phone verification status.", + "x-example": false + } + }, + "required": [ + "phoneVerification" + ] + } + } + ] } }, - "collectionList": { - "description": "Collections List", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of collections that matched your query.", - "x-example": 5, - "format": "int32" + "\/vcs\/github\/installations\/{installationId}\/detections": { + "post": { + "summary": "Create repository detection", + "operationId": "vcsCreateRepositoryDetection", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vcs" + ], + "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": { + "200": { + "description": "DetectionRuntime, or DetectionFramework", + "schema": { + "x-oneOf": [ + { + "$ref": "#\/definitions\/detectionRuntime" + }, + { + "$ref": "#\/definitions\/detectionFramework" + } + ], + "x-discriminator": { + "propertyName": "type", + "mapping": { + "runtime": "#\/definitions\/detectionRuntime", + "framework": "#\/definitions\/detectionFramework" + } + } + } + } }, - "collections": { - "type": "array", - "description": "List of collections.", - "items": { - "type": "object", - "$ref": "#\/definitions\/collection" - }, - "x-example": "" - } - }, - "required": [ - "total", - "collections" - ], - "example": { - "total": 5, - "collections": "" - } + "deprecated": false, + "x-appwrite": { + "method": "createRepositoryDetection", + "group": "repositories", + "cookies": false, + "type": "", + "demo": "vcs\/create-repository-detection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository-detection.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "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": { + "providerRepositoryId": { + "type": "string", + "description": "Repository Id", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "type": { + "type": "string", + "description": "Detector type. Must be one of the following: runtime, framework", + "x-example": "runtime", + "enum": [ + "runtime", + "framework" + ], + "x-enum-name": "VCSDetectionType" + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to Root Directory", + "default": "", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + } + }, + "required": [ + "providerRepositoryId", + "type" + ] + } + } + ] + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories": { + "get": { + "summary": "List repositories", + "operationId": "vcsListRepositories", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vcs" + ], + "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": "Runtime Provider Repositories List, or Framework Provider Repositories List", + "schema": { + "x-oneOf": [ + { + "$ref": "#\/definitions\/providerRepositoryRuntimeList" + }, + { + "$ref": "#\/definitions\/providerRepositoryFrameworkList" + } + ], + "x-discriminator": { + "propertyName": "type", + "mapping": { + "runtime": "#\/definitions\/providerRepositoryRuntimeList", + "framework": "#\/definitions\/providerRepositoryFrameworkList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listRepositories", + "group": "repositories", + "cookies": false, + "type": "", + "demo": "vcs\/list-repositories.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repositories.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "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", + "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" + } + ] + }, + "post": { + "summary": "Create repository", + "operationId": "vcsCreateRepository", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/providerRepository" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createRepository", + "group": "repositories", + "cookies": false, + "type": "", + "demo": "vcs\/create-repository.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "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": { + "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", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vcs" + ], + "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": "ProviderRepository", + "schema": { + "$ref": "#\/definitions\/providerRepository" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getRepository", + "group": "repositories", + "cookies": false, + "type": "", + "demo": "vcs\/get-repository.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "type": "string", + "x-example": "<INSTALLATION_ID>", + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "type": "string", + "x-example": "<PROVIDER_REPOSITORY_ID>", + "in": "path" + } + ] + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/branches": { + "get": { + "summary": "List repository branches", + "operationId": "vcsListRepositoryBranches", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vcs" + ], + "description": "Get a list of branches from a GitHub repository in your installation. This endpoint supports filtering by a search term and pagination using query strings such as `Query.limit()`, `Query.offset()`, `Query.cursorAfter()`, and `Query.cursorBefore()`. It returns branch names along with the total number of matches. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.\n", + "responses": { + "200": { + "description": "Branches List", + "schema": { + "$ref": "#\/definitions\/branchList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listRepositoryBranches", + "group": "repositories", + "cookies": false, + "type": "", + "demo": "vcs\/list-repository-branches.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repository-branches.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "type": "string", + "x-example": "<INSTALLATION_ID>", + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "type": "string", + "x-example": "<PROVIDER_REPOSITORY_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": "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, offset, cursorAfter, and cursorBefore", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + } + ] + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/contents": { + "get": { + "summary": "Get files and directories of a VCS repository", + "operationId": "vcsGetRepositoryContents", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vcs" + ], + "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": { + "200": { + "description": "VCS Content List", + "schema": { + "$ref": "#\/definitions\/vcsContentList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getRepositoryContents", + "group": "repositories", + "cookies": false, + "type": "", + "demo": "vcs\/get-repository-contents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository-contents.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "type": "string", + "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" + } + ] + } + }, + "\/vcs\/github\/installations\/{installationId}\/repositories\/{repositoryId}": { + "patch": { + "summary": "Update external deployment (authorize)", + "operationId": "vcsUpdateExternalDeployments", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vcs" + ], + "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": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateExternalDeployments", + "group": "repositories", + "cookies": false, + "type": "", + "demo": "vcs\/update-external-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/update-external-deployments.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "type": "string", + "x-example": "<INSTALLATION_ID>", + "in": "path" + }, + { + "name": "repositoryId", + "description": "VCS Repository Id", + "required": true, + "type": "string", + "x-example": "<REPOSITORY_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerPullRequestId": { + "type": "string", + "description": "GitHub Pull Request Id", + "x-example": "<PROVIDER_PULL_REQUEST_ID>" + } + }, + "required": [ + "providerPullRequestId" + ] + } + } + ] + } + }, + "\/vcs\/installations": { + "get": { + "summary": "List installations", + "operationId": "vcsListInstallations", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vcs" + ], + "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": "Installations List", + "schema": { + "$ref": "#\/definitions\/installationList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listInstallations", + "group": "installations", + "cookies": false, + "type": "", + "demo": "vcs\/list-installations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-installations.md", + "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\/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": "<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}": { + "get": { + "summary": "Get installation", + "operationId": "vcsGetInstallation", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vcs" + ], + "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": "Installation", + "schema": { + "$ref": "#\/definitions\/installation" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getInstallation", + "group": "installations", + "cookies": false, + "type": "", + "demo": "vcs\/get-installation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-installation.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "type": "string", + "x-example": "<INSTALLATION_ID>", + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete installation", + "operationId": "vcsDeleteInstallation", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "vcs" + ], + "description": "Delete a VCS installation by its unique ID. This endpoint removes the installation and all its associated repositories from the project.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteInstallation", + "group": "installations", + "cookies": false, + "type": "", + "demo": "vcs\/delete-installation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "vcs.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/delete-installation.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "type": "string", + "x-example": "<INSTALLATION_ID>", + "in": "path" + } + ] + } + }, + "\/vectorsdb": { + "get": { + "summary": "List databases", + "operationId": "vectorsDBList", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "Databases List", + "schema": { + "$ref": "#\/definitions\/databaseList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "list", + "group": "vectorsdb", + "cookies": false, + "type": "", + "demo": "vectorsdb\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list.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 columns: name", + "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 database", + "operationId": "vectorsDBCreate", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Create a new Database.\n", + "responses": { + "201": { + "description": "Database", + "schema": { + "$ref": "#\/definitions\/database" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "create", + "group": "vectorsdb", + "cookies": false, + "type": "", + "demo": "vectorsdb\/create.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\/vectorsdb\/create.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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.", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } + } + ] + } + }, + "\/vectorsdb\/embeddings\/text": { + "post": { + "summary": "Create Text Embeddings", + "operationId": "vectorsDBCreateTextEmbeddings", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "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": "Embedding list", + "schema": { + "$ref": "#\/definitions\/embeddingList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTextEmbeddings", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-document.md", + "methods": [ + { + "name": "createTextEmbeddings", + "namespace": "vectorsDB", + "desc": "Create Text Embedding", + "auth": { + "Project": [] + }, + "parameters": [ + "texts", + "model" + ], + "required": [ + "texts" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/embeddingList" + } + ], + "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": "vectorsdb\/create-text-embeddings.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "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.", + "default": "embeddinggemma", + "x-example": "embeddinggemma", + "enum": [ + "embeddinggemma" + ], + "x-enum-name": "EmbeddingModel" + } + }, + "required": [ + "texts" + ] + } + } + ] + } + }, + "\/vectorsdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorsDBListTransactions", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "schema": { + "$ref": "#\/definitions\/transactionList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTransactions", + "group": "transactions", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-transactions.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries).", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "vectorsDBCreateTransaction", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTransaction", + "group": "transactions", + "cookies": false, + "type": "", + "demo": "vectorsdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-transaction.md", + "auth": { + "Project": [] + } + }, + "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" + } + } + } + } + ] + } + }, + "\/vectorsdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "vectorsDBGetTransaction", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTransaction", + "group": "transactions", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-transaction.md", + "auth": { + "Project": [] + } + }, + "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": "vectorsDBUpdateTransaction", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "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", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "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": { + "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": "vectorsDBDeleteTransaction", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "vectorsDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteTransaction", + "group": "transactions", + "cookies": false, + "type": "", + "demo": "vectorsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" + } + ] + } + }, + "\/vectorsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "vectorsDBCreateOperations", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createOperations", + "group": "transactions", + "cookies": false, + "type": "", + "demo": "vectorsdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-operations.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "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": { + "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" + } + } + } + } + } + ] + } + }, + "\/vectorsdb\/usage": { + "get": { + "summary": "Get VectorsDB usage stats", + "operationId": "vectorsDBListUsage", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "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": "UsageVectorsDBs", + "schema": { + "$ref": "#\/definitions\/usageVectorsDBs" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listUsage", + "group": null, + "cookies": false, + "type": "", + "demo": "vectorsdb\/list-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-usage.md", + "methods": [ + { + "name": "listUsage", + "namespace": "vectorsDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "range" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/usageVectorsDBs" + } + ], + "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": "vectorsdb\/list-usage.md", + "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" + } + ] + } + }, + "\/vectorsdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "vectorsDBGet", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "responses": { + "200": { + "description": "Database", + "schema": { + "$ref": "#\/definitions\/database" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "get", + "group": "vectorsdb", + "cookies": false, + "type": "", + "demo": "vectorsdb\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + } + ] + }, + "put": { + "summary": "Update database", + "operationId": "vectorsDBUpdate", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Update a database by its unique ID.", + "responses": { + "200": { + "description": "Database", + "schema": { + "$ref": "#\/definitions\/database" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "update", + "group": "vectorsdb", + "cookies": false, + "type": "", + "demo": "vectorsdb\/update.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\/vectorsdb\/update.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "name" + ] + } + } + ] + }, + "delete": { + "summary": "Delete database", + "operationId": "vectorsDBDelete", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "vectorsDB" + ], + "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": "vectorsdb", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/delete.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "vectorsDBListCollections", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", + "responses": { + "200": { + "description": "VectorsDB Collections List", + "schema": { + "$ref": "#\/definitions\/vectorsdbCollectionList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCollections", + "group": "collections", + "cookies": false, + "type": "", + "demo": "vectorsdb\/list-collections.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-collections.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "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, 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 collection", + "operationId": "vectorsDBCreateCollection", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "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": "VectorsDB Collection", + "schema": { + "$ref": "#\/definitions\/vectorsdbCollection" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createCollection", + "group": "collections", + "cookies": false, + "type": "", + "demo": "vectorsdb\/create-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-collection.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "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.", + "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).", + "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" + ] + } + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "vectorsDBGetCollection", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", + "responses": { + "200": { + "description": "VectorsDB Collection", + "schema": { + "$ref": "#\/definitions\/vectorsdbCollection" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getCollection", + "group": "collections", + "cookies": false, + "type": "", + "demo": "vectorsdb\/get-collection.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-collection.md", + "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" + } + ] + }, + "put": { + "summary": "Update collection", + "operationId": "vectorsDBUpdateCollection", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Update a collection by its unique ID.", + "responses": { + "200": { + "description": "VectorsDB Collection", + "schema": { + "$ref": "#\/definitions\/vectorsdbCollection" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateCollection", + "group": "collections", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/update-collection.md", + "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": "payload", + "in": "body", + "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).", + "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" + ] + } + } + ] + }, + "delete": { + "summary": "Delete collection", + "operationId": "vectorsDBDeleteCollection", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "vectorsDB" + ], + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteCollection", + "group": "collections", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-collection.md", + "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" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "vectorsDBListDocuments", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Get a list of all the user's documents in a given collection. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listDocuments", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/list-documents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-documents.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "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": "queries", + "description": "Array of query strings generated using the Query 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" + } + ] + }, + "post": { + "summary": "Create document", + "operationId": "vectorsDBCreateDocument", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "responses": { + "201": { + "description": "Document", + "schema": { + "$ref": "#\/definitions\/document" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/create-document.md", + "methods": [ + { + "name": "createDocument", + "namespace": "vectorsDB", + "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": "vectorsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "vectorsDB", + "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": "vectorsdb\/create-documents.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "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). 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).", + "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.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + ] + }, + "put": { + "summary": "Upsert documents", + "operationId": "vectorsDBUpsertDocuments", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "upsertDocuments", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/upsert-documents.md", + "methods": [ + { + "name": "upsertDocuments", + "namespace": "vectorsDB", + "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": "vectorsdb\/upsert-documents.md", + "public": true + } + ], + "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": "payload", + "in": "body", + "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": "vectorsDBUpdateDocuments", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Update all documents that match your queries, if no queries are submitted then all documents are updated. You can pass only specific fields to be updated.", + "responses": { + "200": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateDocuments", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/update-documents.md", + "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": "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.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + ] + }, + "delete": { + "summary": "Delete documents", + "operationId": "vectorsDBDeleteDocuments", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", + "responses": { + "200": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDocuments", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/delete-documents.md", + "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 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.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "vectorsDBGetDocument", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", + "responses": { + "200": { + "description": "Document", + "schema": { + "$ref": "#\/definitions\/document" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/get-document.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-document.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "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": "queries", + "description": "Array of query strings generated using the Query 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": "vectorsDBUpsertDocument", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "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": "upsertDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/upsert-document.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorsDB", + "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": "vectorsdb\/upsert-document.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + ] + }, + "patch": { + "summary": "Update document", + "operationId": "vectorsDBUpdateDocument", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "responses": { + "200": { + "description": "Document", + "schema": { + "$ref": "#\/definitions\/document" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/update-document.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "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 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).", + "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": "vectorsDBDeleteDocument", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "vectorsDB" + ], + "description": "Delete a document by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDocument", + "group": "documents", + "cookies": false, + "type": "", + "demo": "vectorsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/delete-document.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "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": { + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "vectorsDBListIndexes", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "List indexes in the collection.", + "responses": { + "200": { + "description": "Indexes List", + "schema": { + "$ref": "#\/definitions\/indexList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listIndexes", + "group": "indexes", + "cookies": false, + "type": "", + "demo": "vectorsdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/list-indexes.md", + "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 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" + } + ] + }, + "post": { + "summary": "Create index", + "operationId": "vectorsDBCreateIndex", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Creates an index on the attributes listed. Your index should include all the attributes you will query in a single request.\nAttributes can be `key`, `fulltext`, and `unique`.", + "responses": { + "202": { + "description": "Index", + "schema": { + "$ref": "#\/definitions\/index" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createIndex", + "group": "indexes", + "cookies": false, + "type": "", + "demo": "vectorsdb\/create-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/create-index.md", + "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 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": "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": "VectorsDBIndexType" + }, + "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.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy" + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], + "x-example": null, + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "vectorsDBGetIndex", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "description": "Get index by ID.", + "responses": { + "200": { + "description": "Index", + "schema": { + "$ref": "#\/definitions\/index" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getIndex", + "group": "indexes", + "cookies": false, + "type": "", + "demo": "vectorsdb\/get-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-index.md", + "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 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" + } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "vectorsDBDeleteIndex", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "vectorsDB" + ], + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteIndex", + "group": "indexes", + "cookies": false, + "type": "", + "demo": "vectorsdb\/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\/vectorsdb\/delete-index.md", + "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 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" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/collections\/{collectionId}\/usage": { + "get": { + "summary": "Get collection usage stats", + "operationId": "vectorsDBGetCollectionUsage", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "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": "UsageCollection", + "schema": { + "$ref": "#\/definitions\/usageCollection" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getCollectionUsage", + "group": null, + "cookies": false, + "type": "", + "demo": "vectorsdb\/get-collection-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-collection-usage.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "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" + } + ] + } + }, + "\/vectorsdb\/{databaseId}\/usage": { + "get": { + "summary": "Get VectorsDB usage stats", + "operationId": "vectorsDBGetUsage", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorsDB" + ], + "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": { + "200": { + "description": "UsageVectorsDB", + "schema": { + "$ref": "#\/definitions\/usageVectorsDB" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getUsage", + "group": null, + "cookies": false, + "type": "", + "demo": "vectorsdb\/get-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "collections.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vectorsdb\/get-database-usage.md", + "methods": [ + { + "name": "getUsage", + "namespace": "vectorsDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "range" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/usageVectorsDB" + } + ], + "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": "vectorsdb\/get-usage.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "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" + } + ] + } + }, + "\/webhooks": { + "get": { + "summary": "List webhooks", + "operationId": "webhooksList", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "webhooks" + ], + "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": "list", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.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, url, authUsername, tls, events, enabled, logs, attempts", + "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 webhook", + "operationId": "webhooksCreate", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "webhooks" + ], + "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": "create", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "webhookId": { + "type": "string", + "description": "Webhook ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<WEBHOOK_ID>" + }, + "url": { + "type": "string", + "description": "Webhook URL.", + "x-example": null + }, + "name": { + "type": "string", + "description": "Webhook name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable a webhook.", + "default": true, + "x-example": false + }, + "tls": { + "type": "boolean", + "description": "Certificate verification, false for disabled or true for enabled.", + "default": false, + "x-example": false + }, + "authUsername": { + "type": "string", + "description": "Webhook HTTP user. Max length: 256 chars.", + "default": "", + "x-example": "<AUTH_USERNAME>" + }, + "authPassword": { + "type": "string", + "description": "Webhook HTTP password. Max length: 256 chars.", + "default": "", + "x-example": "<AUTH_PASSWORD>" + }, + "secret": { + "type": "string", + "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", + "x-example": "<SECRET>", + "x-nullable": true + } + }, + "required": [ + "webhookId", + "url", + "name", + "events" + ] + } + } + ] + } + }, + "\/webhooks\/{webhookId}": { + "get": { + "summary": "Get webhook", + "operationId": "webhooksGet", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "webhooks" + ], + "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": "get", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "type": "string", + "x-example": "<WEBHOOK_ID>", + "in": "path" + } + ] + }, + "put": { + "summary": "Update webhook", + "operationId": "webhooksUpdate", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "webhooks" + ], + "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": "update", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook 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.", + "x-example": "<NAME>" + }, + "url": { + "type": "string", + "description": "Webhook URL.", + "x-example": null + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable a webhook.", + "default": true, + "x-example": false + }, + "tls": { + "type": "boolean", + "description": "Certificate verification, false for disabled or true for enabled.", + "default": false, + "x-example": false + }, + "authUsername": { + "type": "string", + "description": "Webhook HTTP user. Max length: 256 chars.", + "default": "", + "x-example": "<AUTH_USERNAME>" + }, + "authPassword": { + "type": "string", + "description": "Webhook HTTP password. Max length: 256 chars.", + "default": "", + "x-example": "<AUTH_PASSWORD>" + } + }, + "required": [ + "name", + "url", + "events" + ] + } + } + ] + }, + "delete": { + "summary": "Delete webhook", + "operationId": "webhooksDelete", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "webhooks" + ], + "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": "delete", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "type": "string", + "x-example": "<WEBHOOK_ID>", + "in": "path" + } + ] + } + }, + "\/webhooks\/{webhookId}\/secret": { + "patch": { + "summary": "Update webhook secret key", + "operationId": "webhooksUpdateSecret", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "webhooks" + ], + "description": "Update the webhook signing key. This endpoint can be used to regenerate the signing 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": "updateSecret", + "group": null, + "cookies": false, + "type": "", + "demo": "webhooks\/update-secret.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "webhooks.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "webhookId", + "description": "Webhook ID.", + "required": true, + "type": "string", + "x-example": "<WEBHOOK_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "secret": { + "type": "string", + "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", + "x-example": "<SECRET>", + "x-nullable": true + } + } + } + } + ] + } + } + }, + "tags": [ + { + "name": "account", + "description": "The Account service allows you to authenticate and manage a user account." + }, + { + "name": "avatars", + "description": "The Avatars service aims to help you complete everyday tasks related to your app image, icons, and avatars." + }, + { + "name": "databases", + "description": "The Databases service allows you to create structured collections of documents, query and filter lists of documents" + }, + { + "name": "tablesdb", + "description": "The TablesDB service allows you to create structured tables of columns, query and filter lists of rows" + }, + { + "name": "locale", + "description": "The Locale service allows you to customize your app based on your users' location." + }, + { + "name": "health", + "description": "The Health service allows you to both validate and monitor your Appwrite server's health." + }, + { + "name": "projects", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "project", + "description": "The Project service allows you to manage all the projects in your Appwrite server." + }, + { + "name": "storage", + "description": "The Storage service allows you to manage your project files." + }, + { + "name": "teams", + "description": "The Teams service allows you to group users of your project and to enable them to share read and write access to your project resources" + }, + { + "name": "users", + "description": "The Users service allows you to manage your project users." + }, + { + "name": "sites", + "description": "The Sites Service allows you view, create and manage your web applications." + }, + { + "name": "functions", + "description": "The Functions Service allows you view, create and manage your Cloud Functions." + }, + { + "name": "proxy", + "description": "The Proxy Service allows you to configure actions for your domains beyond DNS configuration." + }, + { + "name": "graphql", + "description": "The GraphQL API allows you to query and mutate your Appwrite server using GraphQL." + }, + { + "name": "console", + "description": "The Console service allows you to interact with console relevant information." + }, + { + "name": "migrations", + "description": "The Migrations service allows you to migrate third-party data to your Appwrite project." + }, + { + "name": "messaging", + "description": "The Messaging service allows you to send messages to any provider type (SMTP, push notification, SMS, etc.)." + }, + { + "name": "advisor", + "description": "The Advisor service surfaces actionable reports about your project resources, with CTA descriptors for one-click remediation in the console." + } + ], + "definitions": { + "any": { + "description": "Any", + "type": "object", + "additionalProperties": true, + "example": [] + }, + "rowList": { + "description": "Rows List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of rows that matched your query.", + "x-example": 5, + "format": "int32" + }, + "rows": { + "type": "array", + "description": "List of rows.", + "items": { + "type": "object", + "$ref": "#\/definitions\/row" + }, + "x-example": "" + } + }, + "required": [ + "total", + "rows" + ], + "example": { + "total": 5, + "rows": "" + } + }, + "documentList": { + "description": "Documents List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of documents that matched your query.", + "x-example": 5, + "format": "int32" + }, + "documents": { + "type": "array", + "description": "List of documents.", + "items": { + "type": "object", + "$ref": "#\/definitions\/document" + }, + "x-example": "" + } + }, + "required": [ + "total", + "documents" + ], + "example": { + "total": 5, + "documents": "" + } + }, + "presenceList": { + "description": "Presences List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of presences that matched your query.", + "x-example": 5, + "format": "int32" + }, + "presences": { + "type": "array", + "description": "List of presences.", + "items": { + "type": "object", + "$ref": "#\/definitions\/presence" + }, + "x-example": "" + } + }, + "required": [ + "total", + "presences" + ], + "example": { + "total": 5, + "presences": "" + } + }, + "tableList": { + "description": "Tables List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of tables that matched your query.", + "x-example": 5, + "format": "int32" + }, + "tables": { + "type": "array", + "description": "List of tables.", + "items": { + "type": "object", + "$ref": "#\/definitions\/table" + }, + "x-example": "" + } + }, + "required": [ + "total", + "tables" + ], + "example": { + "total": 5, + "tables": "" + } + }, + "collectionList": { + "description": "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\/collection" + }, + "x-example": "" + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } }, "databaseList": { "description": "Databases List", @@ -84858,6 +86310,12 @@ "x-example": 17890, "format": "int32" }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "x-example": 12345, + "format": "int32" + }, "chunksTotal": { "type": "integer", "description": "Total number of chunks available", @@ -84891,6 +86349,7 @@ "signature", "mimeType", "sizeOriginal", + "sizeActual", "chunksTotal", "chunksUploaded", "encryption", @@ -84908,6 +86367,7 @@ "signature": "5d529fd02b544198ae075bd57c1762bb", "mimeType": "image\/png", "sizeOriginal": 17890, + "sizeActual": 12345, "chunksTotal": 17890, "chunksUploaded": 17890, "encryption": true, @@ -85422,6 +86882,28 @@ "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", "x-example": false }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "x-example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "x-example": [ + "src\/**", + "!docs\/**" + ] + }, "buildSpecification": { "type": "string", "description": "Machine specification for deployment builds.", @@ -85476,6 +86958,8 @@ "providerBranch", "providerRootDirectory", "providerSilentMode", + "providerBranches", + "providerPaths", "buildSpecification", "runtimeSpecification", "buildRuntime", @@ -85510,6 +86994,14 @@ "providerBranch": "main", "providerRootDirectory": "sites\/helloWorld", "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], "buildSpecification": "s-1vcpu-512mb", "runtimeSpecification": "s-1vcpu-512mb", "buildRuntime": "node-22", @@ -85861,6 +87353,28 @@ "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", "x-example": false }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "x-example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "x-example": [ + "src\/**", + "!docs\/**" + ] + }, "buildSpecification": { "type": "string", "description": "Machine specification for deployment builds.", @@ -85901,6 +87415,8 @@ "providerBranch", "providerRootDirectory", "providerSilentMode", + "providerBranches", + "providerPaths", "buildSpecification", "runtimeSpecification" ], @@ -85933,6 +87449,14 @@ "providerBranch": "main", "providerRootDirectory": "functions\/helloWorld", "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], "buildSpecification": "s-1vcpu-512mb", "runtimeSpecification": "s-1vcpu-512mb" } @@ -87435,7 +88959,8 @@ "items": { "type": "object", "$ref": "#\/definitions\/billingLimits" - } + }, + "x-nullable": true }, "blocks": { "type": "array", @@ -87477,7 +89002,6 @@ "services", "protocols", "region", - "billingLimits", "blocks", "consoleAccessedAt" ], @@ -92616,7 +94140,7 @@ } }, "usageProject": { - "description": "UsageProject", + "description": "Project", "type": "object", "properties": { "executionsTotal": { @@ -95255,24 +96779,24 @@ "description": "Event ID.", "x-example": "5e5ea5c16897e" }, - "userType": { + "actorType": { "type": "string", - "description": "User type.", + "description": "Actor type.", "x-example": "user" }, - "userId": { + "actorId": { "type": "string", - "description": "User ID.", + "description": "Actor ID.", "x-example": "610fc2f985ee0" }, - "userEmail": { + "actorEmail": { "type": "string", - "description": "User Email.", + "description": "Actor Email.", "x-example": "john@appwrite.io" }, - "userName": { + "actorName": { "type": "string", - "description": "User Name.", + "description": "Actor Name.", "x-example": "John Doe" }, "resourceParent": { @@ -95413,10 +96937,10 @@ }, "required": [ "$id", - "userType", - "userId", - "userEmail", - "userName", + "actorType", + "actorId", + "actorEmail", + "actorName", "resourceParent", "resourceType", "resourceId", @@ -95447,10 +96971,10 @@ ], "example": { "$id": "5e5ea5c16897e", - "userType": "user", - "userId": "610fc2f985ee0", - "userEmail": "john@appwrite.io", - "userName": "John Doe", + "actorType": "user", + "actorId": "610fc2f985ee0", + "actorEmail": "john@appwrite.io", + "actorName": "John Doe", "resourceParent": "database\/ID", "resourceType": "collection", "resourceId": "610fc2f985ee0", @@ -95534,8 +97058,217 @@ "invoiceDesc": "" } }, + "addon": { + "description": "Addon", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Addon ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Addon creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Addon update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Addon permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] + }, + "key": { + "type": "string", + "description": "Addon key", + "x-example": "baa" + }, + "resourceType": { + "type": "string", + "description": "Resource type (organization or project)", + "x-example": "organization" + }, + "resourceId": { + "type": "string", + "description": "Resource ID", + "x-example": "5e5ea5c16897e" + }, + "status": { + "type": "string", + "description": "Payment status. Possible values: pending (awaiting payment confirmation e.g. 3DS), active (payment confirmed and addon is running).", + "x-example": "active" + }, + "currentValue": { + "type": "integer", + "description": "Current value for this billing cycle. For toggle addons: 1 (on) or 0 (off). For numeric addons: the active quantity.", + "x-example": 1, + "format": "int32" + }, + "nextValue": { + "type": "integer", + "description": "Value to apply at the start of the next billing cycle. Null means no change is scheduled. For toggle addons, 0 means the addon will be removed at the next cycle.", + "x-example": null, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "key", + "resourceType", + "resourceId", + "status", + "currentValue" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "key": "baa", + "resourceType": "organization", + "resourceId": "5e5ea5c16897e", + "status": "active", + "currentValue": 1, + "nextValue": null + } + }, + "addonPrice": { + "description": "AddonPrice", + "type": "object", + "properties": { + "addonKey": { + "type": "string", + "description": "Addon key.", + "x-example": "baa" + }, + "name": { + "type": "string", + "description": "Addon display name.", + "x-example": "HIPAA BAA" + }, + "monthlyPrice": { + "type": "number", + "description": "Full monthly price of the addon.", + "x-example": 350, + "format": "double" + }, + "proratedAmount": { + "type": "number", + "description": "Calculated prorated amount for the current billing cycle.", + "x-example": 175.5, + "format": "double" + }, + "remainingDays": { + "type": "integer", + "description": "Days remaining in the current billing cycle.", + "x-example": 15, + "format": "int32" + }, + "totalCycleDays": { + "type": "integer", + "description": "Total days in the billing cycle.", + "x-example": 30, + "format": "int32" + }, + "currency": { + "type": "string", + "description": "Currency code.", + "x-example": "USD" + }, + "billingCycleEnd": { + "type": "string", + "description": "When the current billing cycle ends.", + "x-example": "2024-02-01T00:00:00.000+00:00" + } + }, + "required": [ + "addonKey", + "name", + "monthlyPrice", + "proratedAmount", + "remainingDays", + "totalCycleDays", + "currency", + "billingCycleEnd" + ], + "example": { + "addonKey": "baa", + "name": "HIPAA BAA", + "monthlyPrice": 350, + "proratedAmount": 175.5, + "remainingDays": 15, + "totalCycleDays": 30, + "currency": "USD", + "billingCycleEnd": "2024-02-01T00:00:00.000+00:00" + } + }, + "aggregationBreakdown": { + "description": "Breakdown", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Aggregation ID.", + "x-example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Project name", + "x-example": "" + }, + "region": { + "type": "string", + "description": "Project region", + "x-example": "fra" + }, + "amount": { + "type": "integer", + "description": "Aggregated amount", + "x-example": 2, + "format": "int32" + }, + "resources": { + "type": "array", + "description": "", + "items": { + "type": "object", + "$ref": "#\/definitions\/usageResources" + }, + "x-example": "" + } + }, + "required": [ + "$id", + "name", + "region", + "amount", + "resources" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "", + "region": "fra", + "amount": 2, + "resources": "" + } + }, "aggregationTeam": { - "description": "AggregationTeam", + "description": "Team", "type": "object", "properties": { "$id": { @@ -95782,56 +97515,6 @@ "resources": [] } }, - "aggregationBreakdown": { - "description": "AggregationBreakdown", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Aggregation ID.", - "x-example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Project name", - "x-example": "" - }, - "region": { - "type": "string", - "description": "Project region", - "x-example": "fra" - }, - "amount": { - "type": "integer", - "description": "Aggregated amount", - "x-example": 2, - "format": "int32" - }, - "resources": { - "type": "array", - "description": "", - "items": { - "type": "object", - "$ref": "#\/definitions\/usageResources" - }, - "x-example": "" - } - }, - "required": [ - "$id", - "name", - "region", - "amount", - "resources" - ], - "example": { - "$id": "5e5ea5c16897e", - "name": "", - "region": "fra", - "amount": 2, - "resources": "" - } - }, "backupArchive": { "description": "Archive", "type": "object", @@ -95933,8 +97616,236 @@ "resourceType": "database" } }, + "dedicatedDatabaseAuditLog": { + "description": "AuditLog", + "type": "object", + "properties": { + "timestamp": { + "type": "string", + "description": "When the event occurred.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "user": { + "type": "string", + "description": "Database user that performed the action.", + "x-example": "appwrite" + }, + "database": { + "type": "string", + "description": "Database name.", + "x-example": "appwrite" + }, + "action": { + "type": "string", + "description": "The action performed (e.g., CREATE TABLE, DROP INDEX).", + "x-example": "CREATE TABLE" + }, + "object": { + "type": "string", + "description": "The database object affected.", + "x-example": "public.users" + }, + "statement": { + "type": "string", + "description": "The full SQL statement.", + "x-example": "CREATE TABLE users (id serial PRIMARY KEY)" + }, + "clientAddress": { + "type": "string", + "description": "Client IP address.", + "x-example": "192.168.1.100" + } + }, + "required": [ + "timestamp", + "user", + "database", + "action", + "object", + "statement", + "clientAddress" + ], + "example": { + "timestamp": "2020-10-15T06:38:00.000+00:00", + "user": "appwrite", + "database": "appwrite", + "action": "CREATE TABLE", + "object": "public.users", + "statement": "CREATE TABLE users (id serial PRIMARY KEY)", + "clientAddress": "192.168.1.100" + } + }, + "dedicatedDatabaseBackup": { + "description": "Backup", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Backup ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Backup creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "databaseId": { + "type": "string", + "description": "Database ID this backup belongs to.", + "x-example": "5e5ea5c16897e" + }, + "projectId": { + "type": "string", + "description": "Project ID.", + "x-example": "5e5ea5c16897e" + }, + "type": { + "type": "string", + "description": "Backup type. Possible values: full (complete database snapshot), incremental (changes since last backup), wal (write-ahead log continuous archival).", + "x-example": "full" + }, + "status": { + "type": "string", + "description": "Backup status. Possible values: pending (queued for processing), running (currently in progress), completed (successfully finished), failed (encountered an error), verified (integrity check passed).", + "x-example": "completed" + }, + "sizeBytes": { + "type": "integer", + "description": "Backup size in bytes.", + "x-example": 1073741824, + "format": "int32" + }, + "startedAt": { + "type": "string", + "description": "Backup start time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "completedAt": { + "type": "string", + "description": "Backup completion time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "verifiedAt": { + "type": "string", + "description": "Backup verification time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "expiresAt": { + "type": "string", + "description": "Backup expiration time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "error": { + "type": "string", + "description": "Error message if backup failed.", + "x-example": "" + } + }, + "required": [ + "$id", + "$createdAt", + "databaseId", + "projectId", + "type", + "status", + "sizeBytes", + "startedAt", + "completedAt", + "verifiedAt", + "expiresAt", + "error" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "databaseId": "5e5ea5c16897e", + "projectId": "5e5ea5c16897e", + "type": "full", + "status": "completed", + "sizeBytes": 1073741824, + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "verifiedAt": "2020-10-15T06:38:00.000+00:00", + "expiresAt": "2020-10-15T06:38:00.000+00:00", + "error": "" + } + }, + "dedicatedDatabaseBackupList": { + "description": "BackupList", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of backups.", + "x-example": 5, + "format": "int32" + }, + "backups": { + "type": "array", + "description": "List of backups.", + "items": { + "type": "object", + "$ref": "#\/definitions\/dedicatedDatabaseBackup" + }, + "x-example": [] + } + }, + "required": [ + "total", + "backups" + ], + "example": { + "total": 5, + "backups": [] + } + }, + "dedicatedDatabaseBackupStorage": { + "description": "BackupStorageConfig", + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Storage provider. Possible values: s3 (Amazon S3 or S3-compatible), gcs (Google Cloud Storage), azure (Azure Blob Storage).", + "x-example": "s3" + }, + "bucket": { + "type": "string", + "description": "Storage bucket or container name.", + "x-example": "my-backup-bucket" + }, + "region": { + "type": "string", + "description": "Storage region.", + "x-example": "us-east-1" + }, + "prefix": { + "type": "string", + "description": "Object key prefix for backups.", + "x-example": "backups\/" + }, + "endpoint": { + "type": "string", + "description": "Custom endpoint for S3-compatible storage.", + "x-example": "https:\/\/minio.example.com" + } + }, + "required": [ + "provider", + "bucket", + "region", + "prefix", + "endpoint" + ], + "example": { + "provider": "s3", + "bucket": "my-backup-bucket", + "region": "us-east-1", + "prefix": "backups\/", + "endpoint": "https:\/\/minio.example.com" + } + }, "billingAddress": { - "description": "BillingAddress", + "description": "Address", "type": "object", "properties": { "$id": { @@ -95989,14 +97900,86 @@ "postalCode" ], "example": { - "$id": "eu-fr", - "userId": "5e5ea5c16897e", - "streetAddress": "13th Avenue", - "addressLine2": "", - "country": "USA", - "city": "", - "state": "", - "postalCode": "" + "$id": "eu-fr", + "userId": "5e5ea5c16897e", + "streetAddress": "13th Avenue", + "addressLine2": "", + "country": "USA", + "city": "", + "state": "", + "postalCode": "" + } + }, + "billingLimits": { + "description": "Limits", + "type": "object", + "properties": { + "bandwidth": { + "type": "integer", + "description": "Bandwidth limit", + "x-example": 5, + "format": "int32", + "x-nullable": true + }, + "storage": { + "type": "integer", + "description": "Storage limit", + "x-example": 150, + "format": "int32", + "x-nullable": true + }, + "users": { + "type": "integer", + "description": "Users limit", + "x-example": 200000, + "format": "int32", + "x-nullable": true + }, + "executions": { + "type": "integer", + "description": "Executions limit", + "x-example": 750000, + "format": "int32", + "x-nullable": true + }, + "GBHours": { + "type": "integer", + "description": "GBHours limit", + "x-example": 100, + "format": "int32", + "x-nullable": true + }, + "imageTransformations": { + "type": "integer", + "description": "Image transformations limit", + "x-example": 100, + "format": "int32", + "x-nullable": true + }, + "authPhone": { + "type": "integer", + "description": "Auth phone limit", + "x-example": 10, + "format": "int32", + "x-nullable": true + }, + "budgetLimit": { + "type": "integer", + "description": "Budget limit percentage", + "x-example": 100, + "format": "int32", + "x-nullable": true + } + }, + "example": { + "bandwidth": 5, + "storage": 150, + "users": 200000, + "executions": 750000, + "GBHours": 100, + "imageTransformations": 100, + "authPhone": 10, + "budgetLimit": 100 } }, "billingPlan": { @@ -96512,7 +98495,7 @@ } }, "billingPlanAddon": { - "description": "BillingPlanAddon", + "description": "Addon", "type": "object", "properties": { "seats": { @@ -96524,707 +98507,1986 @@ "$ref": "#\/definitions\/billingPlanAddonDetails" } }, - "projects": { - "type": "object", - "description": "Addon projects", - "x-example": null, - "items": { - "type": "object", - "$ref": "#\/definitions\/billingPlanAddonDetails" - } + "projects": { + "type": "object", + "description": "Addon projects", + "x-example": null, + "items": { + "type": "object", + "$ref": "#\/definitions\/billingPlanAddonDetails" + } + } + }, + "required": [ + "seats", + "projects" + ], + "example": { + "seats": null, + "projects": null + } + }, + "billingPlanAddonDetails": { + "description": "Details", + "type": "object", + "properties": { + "supported": { + "type": "boolean", + "description": "Is the addon supported in the plan?", + "x-example": true + }, + "planIncluded": { + "type": "integer", + "description": "Addon plan included value", + "x-example": 1, + "format": "int32" + }, + "limit": { + "type": "integer", + "description": "Addon limit", + "x-example": 5, + "format": "int32" + }, + "type": { + "type": "string", + "description": "Addon type", + "x-example": "numeric" + }, + "currency": { + "type": "string", + "description": "Price currency", + "x-example": "USD" + }, + "price": { + "type": "number", + "description": "Price", + "x-example": 5, + "format": "double" + }, + "value": { + "type": "integer", + "description": "Resource value", + "x-example": 25, + "format": "int32" + }, + "invoiceDesc": { + "type": "string", + "description": "Description on invoice", + "x-example": "" + } + }, + "required": [ + "supported", + "planIncluded", + "limit", + "type", + "currency", + "price", + "value", + "invoiceDesc" + ], + "example": { + "supported": true, + "planIncluded": 1, + "limit": 5, + "type": "numeric", + "currency": "USD", + "price": 5, + "value": 25, + "invoiceDesc": "" + } + }, + "billingPlanLimits": { + "description": "PlanLimits", + "type": "object", + "properties": { + "credits": { + "type": "integer", + "description": "Credits limit per billing cycle", + "x-example": 100, + "format": "int32", + "x-nullable": true + }, + "dailyCredits": { + "type": "integer", + "description": "Daily credits limit (if applicable)", + "x-example": 5, + "format": "int32", + "x-nullable": true + } + }, + "example": { + "credits": 100, + "dailyCredits": 5 + } + }, + "billingPlanSupportedAddons": { + "description": "BillingPlanSupportedAddons", + "type": "object", + "properties": { + "baa": { + "type": "boolean", + "description": "Whether the plan supports BAA (Business Associate Agreement) addon", + "x-example": true + } + }, + "required": [ + "baa" + ], + "example": { + "baa": true + } + }, + "block": { + "description": "Block", + "type": "object", + "properties": { + "$createdAt": { + "type": "string", + "description": "Block creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "resourceType": { + "type": "string", + "description": "Resource type that is blocked", + "x-example": "project" + }, + "resourceId": { + "type": "string", + "description": "Resource identifier that is blocked", + "x-example": "5e5ea5c16897e" + }, + "reason": { + "type": "string", + "description": "Reason for the block. Can be null if no reason was provided.", + "x-example": "Payment overdue", + "x-nullable": true + }, + "expiredAt": { + "type": "string", + "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", + "x-example": "2020-10-15T06:38:00.000+00:00", + "x-nullable": true + }, + "projectName": { + "type": "string", + "description": "Name of the project this block applies to.", + "x-example": "My Project" + }, + "region": { + "type": "string", + "description": "Region of the project this block applies to.", + "x-example": "fra" + }, + "organizationName": { + "type": "string", + "description": "Name of the organization that owns the project.", + "x-example": "Acme Inc." + }, + "organizationId": { + "type": "string", + "description": "ID of the organization that owns the project.", + "x-example": "5e5ea5c16897e" + }, + "billingPlan": { + "type": "string", + "description": "Billing plan of the organization that owns the project.", + "x-example": "pro" + } + }, + "required": [ + "$createdAt", + "resourceType", + "resourceId", + "projectName", + "region", + "organizationName", + "organizationId", + "billingPlan" + ], + "example": { + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "resourceType": "project", + "resourceId": "5e5ea5c16897e", + "reason": "Payment overdue", + "expiredAt": "2020-10-15T06:38:00.000+00:00", + "projectName": "My Project", + "region": "fra", + "organizationName": "Acme Inc.", + "organizationId": "5e5ea5c16897e", + "billingPlan": "pro" + } + }, + "blockDelete": { + "description": "BlockDelete", + "type": "object", + "properties": { + "deleted": { + "type": "integer", + "description": "Number of blocks deleted", + "x-example": 1, + "format": "int32" + }, + "blocks": { + "type": "array", + "description": "List of deleted blocks", + "items": { + "type": "object", + "$ref": "#\/definitions\/block" + }, + "x-example": [] + } + }, + "required": [ + "deleted", + "blocks" + ], + "example": { + "deleted": 1, + "blocks": [] + } + }, + "dedicatedDatabaseBranch": { + "description": "Branch", + "type": "object", + "properties": { + "branchId": { + "type": "string", + "description": "Branch identifier.", + "x-example": "branch-a1b2c3d4" + }, + "branchName": { + "type": "string", + "description": "Branch name.", + "x-example": "branch-a1b2c3d4" + }, + "namespace": { + "type": "string", + "description": "Kubernetes namespace where the branch is deployed.", + "x-example": "branch-a1b2c3d4" + }, + "expiresAt": { + "type": "integer", + "description": "Unix timestamp when the branch expires.", + "x-example": 1711411200, + "format": "int32" + } + }, + "required": [ + "branchId", + "branchName", + "namespace", + "expiresAt" + ], + "example": { + "branchId": "branch-a1b2c3d4", + "branchName": "branch-a1b2c3d4", + "namespace": "branch-a1b2c3d4", + "expiresAt": 1711411200 + } + }, + "dedicatedDatabaseBranchList": { + "description": "BranchList", + "type": "object", + "properties": { + "branches": { + "type": "array", + "description": "List of branches.", + "items": { + "type": "object", + "$ref": "#\/definitions\/dedicatedDatabaseBranch" + }, + "x-example": [] + } + }, + "required": [ + "branches" + ], + "example": { + "branches": [] + } + }, + "campaign": { + "description": "Campaign", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Campaign ID", + "x-example": "" + }, + "template": { + "type": "string", + "description": "Campaign template", + "x-example": "" + }, + "title": { + "type": "string", + "description": "Campaign title", + "x-example": "" + }, + "description": { + "type": "string", + "description": "Campaign description", + "x-example": "" + }, + "plan": { + "type": "string", + "description": "Billing plan campaign is associated with", + "x-example": "", + "x-nullable": true + }, + "cta": { + "type": "string", + "description": "Campaign CTA", + "x-example": "", + "x-nullable": true + }, + "claimed": { + "type": "string", + "description": "Campaign info when claimed", + "x-example": "", + "x-nullable": true + }, + "unclaimed": { + "type": "string", + "description": "Campaign infor when unclaimed", + "x-example": "", + "x-nullable": true + }, + "image": { + "type": "object", + "additionalProperties": true, + "description": "Campaign images", + "x-example": "" + }, + "reviews": { + "type": "array", + "description": "Campaign reviews", + "items": { + "type": "object", + "$ref": "#\/definitions\/review" + }, + "x-example": "", + "x-nullable": true + }, + "onlyNewOrgs": { + "type": "boolean", + "description": "Campaign valid only for new orgs.", + "x-example": "", + "x-nullable": true + }, + "footer": { + "type": "boolean", + "description": "Is footer", + "x-example": "", + "x-nullable": true + } + }, + "required": [ + "$id", + "template", + "title", + "description" + ], + "example": { + "$id": "", + "template": "", + "title": "", + "description": "", + "plan": "", + "cta": "", + "claimed": "", + "unclaimed": "", + "image": "", + "reviews": "", + "onlyNewOrgs": "", + "footer": "" + } + }, + "dedicatedDatabaseConnection": { + "description": "Connection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Connection ID.", + "x-example": "5e5ea5c16897e" + }, + "username": { + "type": "string", + "description": "Connection username.", + "x-example": "app_readonly" + }, + "database": { + "type": "string", + "description": "Database name.", + "x-example": "appwrite" + }, + "role": { + "type": "string", + "description": "Connection role. Common values: readonly, readwrite.", + "x-example": "readonly" + }, + "$createdAt": { + "type": "string", + "description": "Connection creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "$id", + "username", + "database", + "role", + "$createdAt" + ], + "example": { + "$id": "5e5ea5c16897e", + "username": "app_readonly", + "database": "appwrite", + "role": "readonly", + "$createdAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "coupon": { + "description": "Coupon", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "coupon ID", + "x-example": "NEWBONUS" + }, + "code": { + "type": "string", + "description": "coupon ID", + "x-example": "NEWBONUS" + }, + "credits": { + "type": "number", + "description": "Provided credit amount", + "x-example": 50, + "format": "double" + }, + "expiration": { + "type": "string", + "description": "Coupon expiration time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "validity": { + "type": "integer", + "description": "Credit validity in days.", + "x-example": 180, + "format": "int32" + }, + "campaign": { + "type": "string", + "description": "Campaign the coupon is associated with`.", + "x-example": "AppwriteHeroes" + }, + "status": { + "type": "string", + "description": "Status of the coupon. Can be one of `disabled`, `active` or `expired`.", + "x-example": "disabled" + }, + "onlyNewOrgs": { + "type": "boolean", + "description": "If the coupon is only valid for new organizations or not.", + "x-example": true + } + }, + "required": [ + "$id", + "code", + "credits", + "expiration", + "validity", + "campaign", + "status", + "onlyNewOrgs" + ], + "example": { + "$id": "NEWBONUS", + "code": "NEWBONUS", + "credits": 50, + "expiration": "2020-10-15T06:38:00.000+00:00", + "validity": 180, + "campaign": "AppwriteHeroes", + "status": "disabled", + "onlyNewOrgs": true + } + }, + "dedicatedDatabaseCredentials": { + "description": "Credentials", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Database ID.", + "x-example": "5e5ea5c16897e" + }, + "host": { + "type": "string", + "description": "Database hostname.", + "x-example": "db-myproject-mydb.fra.appwrite.network" + }, + "port": { + "type": "integer", + "description": "Database port.", + "x-example": 5432, + "format": "int32" + }, + "username": { + "type": "string", + "description": "Database username.", + "x-example": "appwrite" + }, + "password": { + "type": "string", + "description": "Database password.", + "x-example": "********" + }, + "database": { + "type": "string", + "description": "Database name.", + "x-example": "appwrite" + }, + "engine": { + "type": "string", + "description": "Database engine. Possible values: postgres, mysql, mariadb, mongodb.", + "x-example": "postgres" + }, + "ssl": { + "type": "boolean", + "description": "Whether SSL is required.", + "x-example": true + }, + "connectionString": { + "type": "string", + "description": "Full connection string.", + "x-example": "postgresql:\/\/appwrite:****@db-myproject-mydb.fra.appwrite.network:5432\/appwrite?sslmode=require" } }, "required": [ - "seats", - "projects" + "$id", + "host", + "port", + "username", + "password", + "database", + "engine", + "ssl", + "connectionString" ], "example": { - "seats": null, - "projects": null + "$id": "5e5ea5c16897e", + "host": "db-myproject-mydb.fra.appwrite.network", + "port": 5432, + "username": "appwrite", + "password": "********", + "database": "appwrite", + "engine": "postgres", + "ssl": true, + "connectionString": "postgresql:\/\/appwrite:****@db-myproject-mydb.fra.appwrite.network:5432\/appwrite?sslmode=require" } }, - "billingPlanAddonDetails": { - "description": "BillingPlanAddonDetails", + "credit": { + "description": "Credit", "type": "object", "properties": { - "supported": { - "type": "boolean", - "description": "Is the addon supported in the plan?", - "x-example": true + "$id": { + "type": "string", + "description": "Credit ID.", + "x-example": "5e5ea5c16897e" }, - "planIncluded": { - "type": "integer", - "description": "Addon plan included value", - "x-example": 1, - "format": "int32" + "$createdAt": { + "type": "string", + "description": "Credit creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "limit": { - "type": "integer", - "description": "Addon limit", - "x-example": 5, - "format": "int32" + "$updatedAt": { + "type": "string", + "description": "Credit update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "type": { + "$permissions": { + "type": "array", + "description": "Credit permissions. [Learn more about permissions](\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] + }, + "couponId": { "type": "string", - "description": "Addon type", - "x-example": "numeric" + "description": "coupon ID", + "x-example": "NEWBONUS" }, - "currency": { + "userId": { "type": "string", - "description": "Price currency", - "x-example": "USD" + "description": "ID of the User.", + "x-example": "5e5ea5c16897e" }, - "price": { + "teamId": { + "type": "string", + "description": "ID of the Team.", + "x-example": "5e5ea5c16897e" + }, + "credits": { "type": "number", - "description": "Price", - "x-example": 5, + "description": "Provided credit amount", + "x-example": 50, "format": "double" }, - "value": { - "type": "integer", - "description": "Resource value", - "x-example": 25, - "format": "int32" + "total": { + "type": "number", + "description": "Provided credit amount", + "x-example": 50, + "format": "double" }, - "invoiceDesc": { + "expiration": { "type": "string", - "description": "Description on invoice", - "x-example": "" + "description": "Credit expiration time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "status": { + "type": "string", + "description": "Status of the credit. Can be one of `disabled`, `active` or `expired`.", + "x-example": "disabled" } }, "required": [ - "supported", - "planIncluded", - "limit", - "type", - "currency", - "price", - "value", - "invoiceDesc" + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "couponId", + "userId", + "teamId", + "credits", + "total", + "expiration", + "status" ], "example": { - "supported": true, - "planIncluded": 1, - "limit": 5, - "type": "numeric", - "currency": "USD", - "price": 5, - "value": 25, - "invoiceDesc": "" + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "couponId": "NEWBONUS", + "userId": "5e5ea5c16897e", + "teamId": "5e5ea5c16897e", + "credits": 50, + "total": 50, + "expiration": "2020-10-15T06:38:00.000+00:00", + "status": "disabled" } }, - "billingPlanLimits": { - "description": "BillingPlanLimits", + "creditAvailable": { + "description": "CreditAvailable", "type": "object", "properties": { - "credits": { + "available": { "type": "integer", - "description": "Credits limit per billing cycle", + "description": "Total available credits for the organization.", "x-example": 100, - "format": "int32", - "x-nullable": true + "format": "int32" + } + }, + "required": [ + "available" + ], + "example": { + "available": 100 + } + }, + "creditList": { + "description": "CreditList", + "type": "object", + "properties": { + "credits": { + "type": "array", + "description": "Credits", + "items": { + "type": "object", + "$ref": "#\/definitions\/credit" + }, + "x-example": 5 }, - "dailyCredits": { + "total": { "type": "integer", - "description": "Daily credits limit (if applicable)", + "description": "Total number of credits", "x-example": 5, - "format": "int32", - "x-nullable": true + "format": "int32" + }, + "available": { + "type": "number", + "description": "Total available credit balance in USD", + "x-example": 5, + "format": "double" } }, + "required": [ + "credits", + "total", + "available" + ], "example": { - "credits": 100, - "dailyCredits": 5 + "credits": 5, + "total": 5, + "available": 5 } }, - "billingPlanSupportedAddons": { - "description": "BillingPlanSupportedAddons", + "dedicatedDatabaseMetrics": { + "description": "DatabaseMetrics", "type": "object", "properties": { - "baa": { - "type": "boolean", - "description": "Whether the plan supports BAA (Business Associate Agreement) addon", - "x-example": true + "period": { + "type": "string", + "description": "Metrics aggregation period. Possible values: 1h (last hour), 24h (last 24 hours), 7d (last 7 days), 30d (last 30 days).", + "x-example": "24h" + }, + "cpuPercent": { + "type": "number", + "description": "Average CPU usage percentage.", + "x-example": 45.2, + "format": "double" + }, + "memoryPercent": { + "type": "number", + "description": "Average memory usage percentage.", + "x-example": 62.1, + "format": "double" + }, + "memoryUsedBytes": { + "type": "integer", + "description": "Memory used in bytes.", + "x-example": 536870912, + "format": "int32" + }, + "memoryMaxBytes": { + "type": "integer", + "description": "Maximum memory available in bytes.", + "x-example": 1073741824, + "format": "int32" + }, + "storageUsedBytes": { + "type": "integer", + "description": "Storage used in bytes.", + "x-example": 1073741824, + "format": "int32" + }, + "connectionsActive": { + "type": "integer", + "description": "Current active connections.", + "x-example": 15, + "format": "int32" + }, + "connectionsMax": { + "type": "integer", + "description": "Maximum connections configured.", + "x-example": 100, + "format": "int32" + }, + "iopsRead": { + "type": "number", + "description": "Average read IOPS.", + "x-example": 125.5, + "format": "double" + }, + "iopsWrite": { + "type": "number", + "description": "Average write IOPS.", + "x-example": 45.3, + "format": "double" + }, + "qps": { + "type": "number", + "description": "Queries per second.", + "x-example": 230.7, + "format": "double" } }, "required": [ - "baa" + "period", + "cpuPercent", + "memoryPercent", + "memoryUsedBytes", + "memoryMaxBytes", + "storageUsedBytes", + "connectionsActive", + "connectionsMax", + "iopsRead", + "iopsWrite", + "qps" ], "example": { - "baa": true - } - }, - "billingLimits": { - "description": "BillingLimits", + "period": "24h", + "cpuPercent": 45.2, + "memoryPercent": 62.1, + "memoryUsedBytes": 536870912, + "memoryMaxBytes": 1073741824, + "storageUsedBytes": 1073741824, + "connectionsActive": 15, + "connectionsMax": 100, + "iopsRead": 125.5, + "iopsWrite": 45.3, + "qps": 230.7 + } + }, + "dedicatedDatabase": { + "description": "DedicatedDatabase", "type": "object", "properties": { - "bandwidth": { + "$id": { + "type": "string", + "description": "Dedicated database ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Database creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Database update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "projectId": { + "type": "string", + "description": "Project ID that owns this database.", + "x-example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Database display name.", + "x-example": "My Production Database" + }, + "type": { + "type": "string", + "description": "Database type: shared (serverless) or dedicated (always-on).", + "x-example": "dedicated" + }, + "region": { + "type": "string", + "description": "Region identifier (e.g., fra, nyc, syd).", + "x-example": "fra" + }, + "engine": { + "type": "string", + "description": "Database engine: postgres, mysql, mariadb, or mongodb.", + "x-example": "postgres" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "x-example": "16" + }, + "specification": { + "type": "string", + "description": "Specification identifier.", + "x-example": "starter" + }, + "backend": { + "type": "string", + "description": "Database backend provider. Possible values: prisma, edge.", + "x-example": "edge" + }, + "hostname": { + "type": "string", + "description": "Database hostname for connections.", + "x-example": "db-myproject-mydb.fra.appwrite.network" + }, + "connectionPort": { "type": "integer", - "description": "Bandwidth limit", - "x-example": 5, + "description": "Database port for connections.", + "x-example": 5432, "format": "int32" }, - "storage": { + "connectionUser": { + "type": "string", + "description": "Database username for connections.", + "x-example": "appwrite_user" + }, + "connectionPassword": { + "type": "string", + "description": "Database password for connections.", + "x-example": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" + }, + "connectionString": { + "type": "string", + "description": "Full database connection string (URI format).", + "x-example": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.network:5432\/postgres" + }, + "status": { + "type": "string", + "description": "Database status. Possible values: provisioning, ready, inactive, paused, failed, deleted, restoring, scaling.", + "x-example": "ready" + }, + "containerStatus": { + "type": "string", + "description": "Container status for shared databases: active or inactive.", + "x-example": "active" + }, + "lastAccessedAt": { + "type": "string", + "description": "Last activity timestamp in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "idleUntil": { + "type": "string", + "description": "Timestamp when container will be considered idle and scale to zero (ISO 8601 format).", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "idleTimeoutMinutes": { "type": "integer", - "description": "Storage limit", - "x-example": 150, + "description": "Minutes of inactivity before container scales to zero.", + "x-example": 15, "format": "int32" }, - "users": { + "cpu": { "type": "integer", - "description": "Users limit", - "x-example": 200000, + "description": "CPU allocated in millicores.", + "x-example": 2000, "format": "int32" }, - "executions": { + "memory": { "type": "integer", - "description": "Executions limit", - "x-example": 750000, + "description": "Memory allocated in MB.", + "x-example": 4096, "format": "int32" }, - "GBHours": { + "storage": { "type": "integer", - "description": "GBHours limit", + "description": "Storage allocated in GB.", "x-example": 100, "format": "int32" }, - "imageTransformations": { + "storageClass": { + "type": "string", + "description": "Storage class: ssd, nvme, or hdd.", + "x-example": "ssd" + }, + "storageMaxGb": { "type": "integer", - "description": "Image transformations limit", + "description": "Maximum storage allowed in GB. 0 means use system default.", "x-example": 100, "format": "int32" }, - "authPhone": { + "nodePool": { + "type": "string", + "description": "Kubernetes node pool where the database is scheduled.", + "x-example": "db-pool-4vcpu-8gb" + }, + "highAvailability": { + "type": "boolean", + "description": "Whether high availability is enabled.", + "x-example": true + }, + "highAvailabilityReplicaCount": { "type": "integer", - "description": "Auth phone limit", - "x-example": 10, + "description": "Number of high availability replicas.", + "x-example": 2, "format": "int32" }, - "budgetLimit": { + "highAvailabilitySyncMode": { + "type": "string", + "description": "Replication sync mode: async, sync, or quorum.", + "x-example": "async" + }, + "networkMaxConnections": { "type": "integer", - "description": "Budget limit percentage", - "x-example": 100, + "description": "Maximum concurrent connections.", + "x-example": 500, + "format": "int32" + }, + "networkIdleTimeoutSeconds": { + "type": "integer", + "description": "Connection idle timeout in seconds.", + "x-example": 900, + "format": "int32" + }, + "networkIPAllowlist": { + "type": "array", + "description": "IP addresses\/CIDR ranges allowed to connect.", + "items": { + "type": "string" + }, + "x-example": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ] + }, + "backupEnabled": { + "type": "boolean", + "description": "Whether automatic backups are enabled.", + "x-example": true + }, + "backupPitr": { + "type": "boolean", + "description": "Whether point-in-time recovery is enabled.", + "x-example": true + }, + "backupCron": { + "type": "string", + "description": "Backup schedule in cron format.", + "x-example": "0 3 * * *" + }, + "backupRetentionDays": { + "type": "integer", + "description": "Number of days to retain backups.", + "x-example": 30, + "format": "int32" + }, + "pitrRetentionDays": { + "type": "integer", + "description": "Number of days to retain PITR data.", + "x-example": 14, + "format": "int32" + }, + "storageAutoscaling": { + "type": "boolean", + "description": "Whether automatic storage expansion is enabled.", + "x-example": true + }, + "storageAutoscalingThresholdPercent": { + "type": "integer", + "description": "Storage usage percentage that triggers automatic expansion.", + "x-example": 85, + "format": "int32" + }, + "storageAutoscalingMaxGb": { + "type": "integer", + "description": "Maximum storage size in GB for autoscaling. 0 means no limit.", + "x-example": 500, + "format": "int32" + }, + "maintenanceWindowDay": { + "type": "string", + "description": "Day of the week for the maintenance window. Possible values: sun, mon, tue, wed, thu, fri, sat.", + "x-example": "sun" + }, + "maintenanceWindowHourUtc": { + "type": "integer", + "description": "Hour in UTC (0-23) when the maintenance window starts.", + "x-example": 3, + "format": "int32" + }, + "metricsEnabled": { + "type": "boolean", + "description": "Whether metrics collection is enabled.", + "x-example": true + }, + "sqlApiEnabled": { + "type": "boolean", + "description": "Whether the SQL API sidecar is enabled for this database.", + "x-example": true + }, + "sqlApiAllowedStatements": { + "type": "array", + "description": "Statement types accepted by the SQL API. Allowed values: SELECT, INSERT, UPDATE, DELETE.", + "items": { + "type": "string" + }, + "x-example": "SELECT" + }, + "sqlApiMaxRows": { + "type": "integer", + "description": "Maximum rows returned per SQL API execution. Results larger than this are truncated.", + "x-example": 10000, + "format": "int32" + }, + "sqlApiMaxBytes": { + "type": "integer", + "description": "Maximum serialised SQL API result payload in bytes. Results larger than this are truncated.", + "x-example": 10485760, + "format": "int32" + }, + "sqlApiTimeoutSeconds": { + "type": "integer", + "description": "Maximum server-side SQL API execution time in seconds before the query is cancelled.", + "x-example": 30, "format": "int32" + }, + "error": { + "type": "string", + "description": "Error message if status is failed.", + "x-example": "" } }, "required": [ - "bandwidth", + "$id", + "$createdAt", + "$updatedAt", + "projectId", + "name", + "type", + "region", + "engine", + "version", + "specification", + "backend", + "hostname", + "connectionPort", + "connectionUser", + "connectionPassword", + "connectionString", + "status", + "containerStatus", + "lastAccessedAt", + "idleUntil", + "idleTimeoutMinutes", + "cpu", + "memory", "storage", - "users", - "executions", - "GBHours", - "imageTransformations", - "authPhone", - "budgetLimit" + "storageClass", + "storageMaxGb", + "nodePool", + "highAvailability", + "highAvailabilityReplicaCount", + "highAvailabilitySyncMode", + "networkMaxConnections", + "networkIdleTimeoutSeconds", + "networkIPAllowlist", + "backupEnabled", + "backupPitr", + "backupCron", + "backupRetentionDays", + "pitrRetentionDays", + "storageAutoscaling", + "storageAutoscalingThresholdPercent", + "storageAutoscalingMaxGb", + "maintenanceWindowDay", + "maintenanceWindowHourUtc", + "metricsEnabled", + "sqlApiEnabled", + "sqlApiAllowedStatements", + "sqlApiMaxRows", + "sqlApiMaxBytes", + "sqlApiTimeoutSeconds", + "error" ], "example": { - "bandwidth": 5, - "storage": 150, - "users": 200000, - "executions": 750000, - "GBHours": 100, - "imageTransformations": 100, - "authPhone": 10, - "budgetLimit": 100 + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "projectId": "5e5ea5c16897e", + "name": "My Production Database", + "type": "dedicated", + "region": "fra", + "engine": "postgres", + "version": "16", + "specification": "starter", + "backend": "edge", + "hostname": "db-myproject-mydb.fra.appwrite.network", + "connectionPort": 5432, + "connectionUser": "appwrite_user", + "connectionPassword": "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", + "connectionString": "postgresql:\/\/user:pass@db-myproject-mydb.fra.appwrite.network:5432\/postgres", + "status": "ready", + "containerStatus": "active", + "lastAccessedAt": "2020-10-15T06:38:00.000+00:00", + "idleUntil": "2020-10-15T06:38:00.000+00:00", + "idleTimeoutMinutes": 15, + "cpu": 2000, + "memory": 4096, + "storage": 100, + "storageClass": "ssd", + "storageMaxGb": 100, + "nodePool": "db-pool-4vcpu-8gb", + "highAvailability": true, + "highAvailabilityReplicaCount": 2, + "highAvailabilitySyncMode": "async", + "networkMaxConnections": 500, + "networkIdleTimeoutSeconds": 900, + "networkIPAllowlist": [ + "10.0.0.0\/8", + "192.168.1.0\/24" + ], + "backupEnabled": true, + "backupPitr": true, + "backupCron": "0 3 * * *", + "backupRetentionDays": 30, + "pitrRetentionDays": 14, + "storageAutoscaling": true, + "storageAutoscalingThresholdPercent": 85, + "storageAutoscalingMaxGb": 500, + "maintenanceWindowDay": "sun", + "maintenanceWindowHourUtc": 3, + "metricsEnabled": true, + "sqlApiEnabled": true, + "sqlApiAllowedStatements": "SELECT", + "sqlApiMaxRows": 10000, + "sqlApiMaxBytes": 10485760, + "sqlApiTimeoutSeconds": 30, + "error": "" + } + }, + "dedicatedDatabaseExecution": { + "description": "Execution", + "type": "object", + "properties": { + "rows": { + "type": "object", + "additionalProperties": true, + "description": "Result rows as a list of column-name => value maps. Empty for non-returning statements.", + "x-example": [ + { + "id": 1, + "name": "example" + } + ] + }, + "rowCount": { + "type": "integer", + "description": "Number of rows returned (for SELECT) or affected (for INSERT\/UPDATE\/DELETE).", + "x-example": 1, + "format": "int32" + }, + "columns": { + "type": "array", + "description": "Column metadata in result-set order.", + "items": { + "type": "object", + "$ref": "#\/definitions\/dedicatedDatabaseExecutionColumn" + }, + "x-example": [] + }, + "durationMs": { + "type": "integer", + "description": "Server-side execution time in milliseconds.", + "x-example": 12, + "format": "int32" + }, + "truncated": { + "type": "boolean", + "description": "True when the configured row or byte cap was hit and the result was truncated.", + "x-example": false + }, + "bytes": { + "type": "integer", + "description": "Serialised payload size in bytes.", + "x-example": 1024, + "format": "int32" + } + }, + "required": [ + "rows", + "rowCount", + "columns", + "durationMs", + "truncated", + "bytes" + ], + "example": { + "rows": [ + { + "id": 1, + "name": "example" + } + ], + "rowCount": 1, + "columns": [], + "durationMs": 12, + "truncated": false, + "bytes": 1024 } }, - "block": { - "description": "Block", + "dedicatedDatabaseExecutionColumn": { + "description": "ExecutionColumn", "type": "object", "properties": { + "name": { + "type": "string", + "description": "Column name as returned by the database.", + "x-example": "id" + }, + "type": { + "type": "string", + "description": "Engine-specific column type (e.g. int4, text, timestamptz).", + "x-example": "int4" + } + }, + "required": [ + "name", + "type" + ], + "example": { + "name": "id", + "type": "int4" + } + }, + "dedicatedDatabaseRestoration": { + "description": "Restoration", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Restoration ID.", + "x-example": "5e5ea5c16897e" + }, "$createdAt": { "type": "string", - "description": "Block creation date in ISO 8601 format.", + "description": "Restoration creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "resourceType": { + "databaseId": { "type": "string", - "description": "Resource type that is blocked", - "x-example": "project" + "description": "Database ID being restored.", + "x-example": "5e5ea5c16897e" }, - "resourceId": { + "projectId": { "type": "string", - "description": "Resource identifier that is blocked", + "description": "Project ID.", "x-example": "5e5ea5c16897e" }, - "reason": { + "backupId": { "type": "string", - "description": "Reason for the block. Can be null if no reason was provided.", - "x-example": "Payment overdue", - "x-nullable": true + "description": "Backup ID used for restoration (null for PITR).", + "x-example": "5e5ea5c16897e" }, - "expiredAt": { + "type": { "type": "string", - "description": "Block expiration date in ISO 8601 format. Can be null if the block does not expire.", - "x-example": "2020-10-15T06:38:00.000+00:00", - "x-nullable": true + "description": "Restoration type. Possible values: backup (restore from a specific backup snapshot), pitr (point-in-time recovery to a specific timestamp).", + "x-example": "backup" }, - "projectName": { + "status": { "type": "string", - "description": "Name of the project this block applies to.", - "x-example": "My Project" + "description": "Restoration status. Possible values: pending (queued for processing), running (currently in progress), completed (successfully finished), failed (encountered an error).", + "x-example": "completed" }, - "region": { + "targetTime": { "type": "string", - "description": "Region of the project this block applies to.", - "x-example": "fra" + "description": "Target time for PITR restoration in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "organizationName": { + "startedAt": { "type": "string", - "description": "Name of the organization that owns the project.", - "x-example": "Acme Inc." + "description": "Restoration start time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "organizationId": { + "completedAt": { "type": "string", - "description": "ID of the organization that owns the project.", - "x-example": "5e5ea5c16897e" + "description": "Restoration completion time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "billingPlan": { + "error": { "type": "string", - "description": "Billing plan of the organization that owns the project.", - "x-example": "pro" + "description": "Error message if restoration failed.", + "x-example": "" } }, "required": [ + "$id", "$createdAt", - "resourceType", - "resourceId", - "projectName", - "region", - "organizationName", - "organizationId", - "billingPlan" + "databaseId", + "projectId", + "backupId", + "type", + "status", + "targetTime", + "startedAt", + "completedAt", + "error" ], "example": { + "$id": "5e5ea5c16897e", "$createdAt": "2020-10-15T06:38:00.000+00:00", - "resourceType": "project", - "resourceId": "5e5ea5c16897e", - "reason": "Payment overdue", - "expiredAt": "2020-10-15T06:38:00.000+00:00", - "projectName": "My Project", - "region": "fra", - "organizationName": "Acme Inc.", - "organizationId": "5e5ea5c16897e", - "billingPlan": "pro" + "databaseId": "5e5ea5c16897e", + "projectId": "5e5ea5c16897e", + "backupId": "5e5ea5c16897e", + "type": "backup", + "status": "completed", + "targetTime": "2020-10-15T06:38:00.000+00:00", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "completedAt": "2020-10-15T06:38:00.000+00:00", + "error": "" } }, - "blockDelete": { - "description": "BlockDelete", + "databaseStatus": { + "description": "Status", "type": "object", "properties": { - "deleted": { + "health": { + "type": "string", + "description": "Overall health status: healthy, degraded, or unhealthy.", + "x-example": "healthy" + }, + "ready": { + "type": "boolean", + "description": "Whether the database is ready to accept connections.", + "x-example": true + }, + "engine": { + "type": "string", + "description": "Database engine: postgres, mysql, mariadb, or mongodb.", + "x-example": "postgres" + }, + "version": { + "type": "string", + "description": "Database engine version.", + "x-example": "17" + }, + "uptime": { "type": "integer", - "description": "Number of blocks deleted", - "x-example": 1, + "description": "Database uptime in seconds.", + "x-example": 86400, "format": "int32" }, - "blocks": { + "connections": { + "type": "object", + "description": "Connection statistics.", + "x-example": { + "current": 12, + "max": 100 + }, + "items": { + "type": "object", + "$ref": "#\/definitions\/databaseStatusConnections" + } + }, + "replicas": { "type": "array", - "description": "List of deleted blocks", + "description": "List of database replicas and their status.", "items": { "type": "object", - "$ref": "#\/definitions\/block" + "$ref": "#\/definitions\/databaseStatusReplica" }, - "x-example": [] + "x-example": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "lagSeconds": 0.2 + } + ] + }, + "volumes": { + "type": "array", + "description": "Storage volume information.", + "items": { + "type": "object", + "$ref": "#\/definitions\/databaseStatusVolume" + }, + "x-example": { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } } }, "required": [ - "deleted", - "blocks" + "health", + "ready", + "engine", + "version", + "uptime", + "connections", + "replicas", + "volumes" ], "example": { - "deleted": 1, - "blocks": [] + "health": "healthy", + "ready": true, + "engine": "postgres", + "version": "17", + "uptime": 86400, + "connections": { + "current": 12, + "max": 100 + }, + "replicas": [ + { + "index": 0, + "role": "primary", + "healthy": true, + "lagSeconds": null + }, + { + "index": 1, + "role": "replica", + "healthy": true, + "lagSeconds": 0.2 + } + ], + "volumes": { + "data": { + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true + } + } } }, - "campaign": { - "description": "Campaign", + "dnsRecord": { + "description": "DNSRecord", "type": "object", "properties": { "$id": { "type": "string", - "description": "Campaign ID", - "x-example": "" + "description": "DNS Record ID.", + "x-example": "5f40a6e10c65e" }, - "template": { + "$createdAt": { "type": "string", - "description": "Campaign template", - "x-example": "" + "description": "DNS Record creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "title": { + "$updatedAt": { "type": "string", - "description": "Campaign title", - "x-example": "" + "description": "DNS Record update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "description": { + "type": { "type": "string", - "description": "Campaign description", - "x-example": "" + "description": "DNS record type (e.g. A, CNAME, MX).", + "x-example": "A" }, - "plan": { + "name": { "type": "string", - "description": "Billing plan campaign is associated with", - "x-example": "", - "x-nullable": true + "description": "Record name or subdomain.", + "x-example": "mail" }, - "cta": { + "value": { "type": "string", - "description": "Campaign CTA", - "x-example": "", - "x-nullable": true + "description": "Value of the record (IP address, domain, etc.).", + "x-example": "192.0.2.1" }, - "claimed": { - "type": "string", - "description": "Campaign info when claimed", - "x-example": "", - "x-nullable": true + "ttl": { + "type": "integer", + "description": "Time to live (in seconds).", + "x-example": 86400, + "format": "int32" }, - "unclaimed": { - "type": "string", - "description": "Campaign infor when unclaimed", - "x-example": "", - "x-nullable": true + "priority": { + "type": "integer", + "description": "Record priority (commonly used for MX).", + "x-example": 10, + "format": "int32" }, - "image": { - "type": "object", - "additionalProperties": true, - "description": "Campaign images", - "x-example": "" + "lock": { + "type": "boolean", + "description": "Whether this record is locked (read-only).", + "x-example": false }, - "reviews": { - "type": "array", - "description": "Campaign reviews", - "items": { - "type": "object", - "$ref": "#\/definitions\/review" - }, - "x-example": "", - "x-nullable": true + "weight": { + "type": "integer", + "description": "Record weight (used for SRV records).", + "x-example": 10, + "format": "int32" }, - "onlyNewOrgs": { - "type": "boolean", - "description": "Campaign valid only for new orgs.", - "x-example": "", - "x-nullable": true + "port": { + "type": "integer", + "description": "Target port (used for SRV records).", + "x-example": 443, + "format": "int32" }, - "footer": { - "type": "boolean", - "description": "Is footer", - "x-example": "", - "x-nullable": true + "comment": { + "type": "string", + "description": "Comment for the DNS record.", + "x-example": "Mail server record" } }, "required": [ "$id", - "template", - "title", - "description" + "$createdAt", + "$updatedAt", + "type", + "name", + "value", + "ttl", + "priority", + "lock", + "weight", + "port", + "comment" ], "example": { - "$id": "", - "template": "", - "title": "", - "description": "", - "plan": "", - "cta": "", - "claimed": "", - "unclaimed": "", - "image": "", - "reviews": "", - "onlyNewOrgs": "", - "footer": "" + "$id": "5f40a6e10c65e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "type": "A", + "name": "mail", + "value": "192.0.2.1", + "ttl": 86400, + "priority": 10, + "lock": false, + "weight": 10, + "port": 443, + "comment": "Mail server record" } }, - "program": { - "description": "Program", + "domain": { + "description": "Domain", "type": "object", "properties": { "$id": { "type": "string", - "description": "Program ID", - "x-example": "" + "description": "Domain ID.", + "x-example": "5e5ea5c16897e" }, - "title": { + "$createdAt": { "type": "string", - "description": "Program title", - "x-example": "" + "description": "Domain creation time in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "description": { + "$updatedAt": { "type": "string", - "description": "Program description", - "x-example": "" + "description": "Domain update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "tag": { + "domain": { "type": "string", - "description": "Program tag for highlighting on console", - "x-example": null + "description": "Domain name.", + "x-example": "example.com" }, - "icon": { + "registrar": { "type": "string", - "description": "Program icon for highlighting on console", - "x-example": null + "description": "Domain registrar (e.g. \"appwrite\" or \"third_party\").", + "x-example": "appwrite" }, - "url": { + "nameservers": { "type": "string", - "description": "URL for more information on this program", - "x-example": "" + "description": "Nameservers setting. \"Appwrite\" or empty string.", + "x-example": "Appwrite" }, - "active": { - "type": "boolean", - "description": "Whether this program is active", - "x-example": false + "expire": { + "type": "string", + "description": "Domain expiry date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "external": { + "renewal": { + "type": "string", + "description": "Domain renewal date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "autoRenewal": { "type": "boolean", - "description": "Whether this program is external", - "x-example": false + "description": "If set to true, the domain will automatically renew.", + "x-example": true }, - "billingPlanId": { + "renewalPrice": { + "type": "integer", + "description": "Renewal price (in cents).", + "x-example": 2599, + "format": "int32" + }, + "transferStatus": { "type": "string", - "description": "Billing plan ID that this is program is associated with.", - "x-example": "" + "description": "Transfer status for domains being transferred in.", + "x-example": "pending_registry", + "enum": [ + "transferrable", + "not_transferrable", + "pending_owner", + "pending_admin", + "pending_registry", + "completed", + "cancelled", + "service_unavailable" + ], + "x-enum-name": "DomainTransferStatusEnum" + }, + "teamId": { + "type": "string", + "description": "Team ID.", + "x-example": "5e5ea5c16897e" + }, + "dnsRecords": { + "type": "array", + "description": "Dns records", + "items": { + "type": "object", + "$ref": "#\/definitions\/dnsRecord" + }, + "x-example": [] } }, "required": [ "$id", - "title", - "description", - "tag", - "icon", - "url", - "active", - "external", - "billingPlanId" + "$createdAt", + "$updatedAt", + "domain", + "registrar", + "nameservers", + "expire", + "renewal", + "autoRenewal", + "renewalPrice", + "transferStatus", + "teamId", + "dnsRecords" ], "example": { - "$id": "", - "title": "", - "description": "", - "tag": null, - "icon": null, - "url": "", - "active": false, - "external": false, - "billingPlanId": "" + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "domain": "example.com", + "registrar": "appwrite", + "nameservers": "Appwrite", + "expire": "2020-10-15T06:38:00.000+00:00", + "renewal": "2020-10-15T06:38:00.000+00:00", + "autoRenewal": true, + "renewalPrice": 2599, + "transferStatus": "pending_registry", + "teamId": "5e5ea5c16897e", + "dnsRecords": [] } }, - "coupon": { - "description": "Coupon", + "domainPrice": { + "description": "DomainPrice", "type": "object", "properties": { - "$id": { + "domain": { "type": "string", - "description": "coupon ID", - "x-example": "NEWBONUS" + "description": "Domain name.", + "x-example": "example.com" }, - "code": { + "tld": { "type": "string", - "description": "coupon ID", - "x-example": "NEWBONUS" + "description": "Top-level domain for the requested domain.", + "x-example": "com" }, - "credits": { + "available": { + "type": "boolean", + "description": "Whether the domain is currently available for registration.", + "x-example": true + }, + "price": { "type": "number", - "description": "Provided credit amount", - "x-example": 50, + "description": "Domain registration price.", + "x-example": 25.99, "format": "double" }, - "expiration": { - "type": "string", - "description": "Coupon expiration time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "validity": { + "periodYears": { "type": "integer", - "description": "Credit validity in days.", - "x-example": 180, + "description": "Price period in years.", + "x-example": 1, "format": "int32" }, - "campaign": { - "type": "string", - "description": "Campaign the coupon is associated with`.", - "x-example": "AppwriteHeroes" - }, - "status": { - "type": "string", - "description": "Status of the coupon. Can be one of `disabled`, `active` or `expired`.", - "x-example": "disabled" - }, - "onlyNewOrgs": { + "premium": { "type": "boolean", - "description": "If the coupon is only valid for new organizations or not.", - "x-example": true + "description": "Whether the domain is a premium domain.", + "x-example": false } }, "required": [ - "$id", - "code", - "credits", - "expiration", - "validity", - "campaign", - "status", - "onlyNewOrgs" + "domain", + "tld", + "available", + "price", + "periodYears", + "premium" ], "example": { - "$id": "NEWBONUS", - "code": "NEWBONUS", - "credits": 50, - "expiration": "2020-10-15T06:38:00.000+00:00", - "validity": 180, - "campaign": "AppwriteHeroes", - "status": "disabled", - "onlyNewOrgs": true + "domain": "example.com", + "tld": "com", + "available": true, + "price": 25.99, + "periodYears": 1, + "premium": false } }, - "credit": { - "description": "Credit", + "domainPurchase": { + "description": "DomainPurchase", "type": "object", "properties": { "$id": { "type": "string", - "description": "Credit ID.", + "description": "Purchase\/invoice ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Credit creation time in ISO 8601 format.", + "description": "Purchase creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Credit update date in ISO 8601 format.", + "description": "Purchase update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "$permissions": { - "type": "array", - "description": "Credit permissions. [Learn more about permissions](\/docs\/permissions).", - "items": { - "type": "string" - }, - "x-example": [ - "read(\"any\")" - ] + "domainId": { + "type": "string", + "description": "Domain document ID.", + "x-example": "5e5ea5c16897e" }, - "couponId": { + "domain": { "type": "string", - "description": "coupon ID", - "x-example": "NEWBONUS" + "description": "Domain name.", + "x-example": "example.com" }, - "userId": { + "organizationId": { "type": "string", - "description": "ID of the User.", + "description": "Team ID that owns the domain.", "x-example": "5e5ea5c16897e" }, - "teamId": { + "status": { + "type": "string", + "description": "Domain purchase status.", + "x-example": "pending", + "enum": [ + "pending", + "succeeded", + "failed", + "cancelled" + ], + "x-enum-name": "DomainPurchaseStatus" + }, + "clientSecret": { "type": "string", - "description": "ID of the Team.", - "x-example": "5e5ea5c16897e" - }, - "credits": { - "type": "number", - "description": "Provided credit amount", - "x-example": 50, - "format": "double" + "description": "Stripe client secret for 3DS; empty when not applicable.", + "x-example": "" }, - "total": { + "amount": { "type": "number", - "description": "Provided credit amount", - "x-example": 50, + "description": "Purchase amount.", + "x-example": 25.99, "format": "double" }, - "expiration": { - "type": "string", - "description": "Credit expiration time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "status": { + "currency": { "type": "string", - "description": "Status of the credit. Can be one of `disabled`, `active` or `expired`.", - "x-example": "disabled" + "description": "Currency code.", + "x-example": "USD" } }, "required": [ "$id", "$createdAt", "$updatedAt", - "$permissions", - "couponId", - "userId", - "teamId", - "credits", - "total", - "expiration", - "status" + "domainId", + "domain", + "organizationId", + "status", + "clientSecret", + "amount", + "currency" ], "example": { "$id": "5e5ea5c16897e", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "couponId": "NEWBONUS", - "userId": "5e5ea5c16897e", - "teamId": "5e5ea5c16897e", - "credits": 50, - "total": 50, - "expiration": "2020-10-15T06:38:00.000+00:00", - "status": "disabled" + "domainId": "5e5ea5c16897e", + "domain": "example.com", + "organizationId": "5e5ea5c16897e", + "status": "pending", + "clientSecret": "", + "amount": 25.99, + "currency": "USD" } }, - "creditAvailable": { - "description": "CreditAvailable", + "domainSuggestion": { + "description": "DomainSuggestion", "type": "object", "properties": { + "domain": { + "type": "string", + "description": "Domain suggestion.", + "x-example": "example.com" + }, + "premium": { + "type": "boolean", + "description": "Is the domain premium?", + "x-example": true + }, + "price": { + "type": "number", + "description": "Domain price.", + "x-example": 25.99, + "format": "double", + "x-nullable": true + }, "available": { - "type": "integer", - "description": "Total available credits for the organization.", - "x-example": 100, - "format": "int32" + "type": "boolean", + "description": "Is the domain available?", + "x-example": true } }, "required": [ + "domain", + "premium", "available" ], "example": { - "available": 100 + "domain": "example.com", + "premium": true, + "price": 25.99, + "available": true } }, - "creditList": { - "description": "CreditList", + "domainTransferOut": { + "description": "domainTransferOut", "type": "object", "properties": { - "credits": { - "type": "array", - "description": "Credits", - "items": { - "type": "object", - "$ref": "#\/definitions\/credit" - }, - "x-example": 5 + "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" + ], + "x-enum-name": "DomainTransferStatusEnum" }, - "total": { - "type": "integer", - "description": "Total number of credits", - "x-example": 5, - "format": "int32" + "reason": { + "type": "string", + "description": "Additional transfer status information.", + "x-example": "Transfer in progress" }, - "available": { - "type": "number", - "description": "Total available credit balance in USD", - "x-example": 5, - "format": "double" + "timestamp": { + "type": "string", + "description": "Transfer status timestamp in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ - "credits", - "total", - "available" + "status", + "reason", + "timestamp" ], "example": { - "credits": 5, - "total": 5, - "available": 5 + "status": "pending_registry", + "reason": "Transfer in progress", + "timestamp": "2020-10-15T06:38:00.000+00:00" } }, "downgradeFeedback": { @@ -97307,6 +100569,395 @@ "version": "1.8.0" } }, + "estimation": { + "description": "Estimation", + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Total amount", + "x-example": 50, + "format": "double" + }, + "grossAmount": { + "type": "number", + "description": "Gross payable amount", + "x-example": 50, + "format": "double" + }, + "discount": { + "type": "number", + "description": "Discount amount", + "x-example": 50, + "format": "double" + }, + "credits": { + "type": "number", + "description": "Credits amount", + "x-example": 50, + "format": "double" + }, + "items": { + "type": "array", + "description": "Estimation items", + "items": { + "type": "object", + "$ref": "#\/definitions\/estimation_item" + }, + "x-example": [] + }, + "discounts": { + "type": "array", + "description": "Estimation discount items", + "items": { + "type": "object", + "$ref": "#\/definitions\/estimation_item" + }, + "x-example": [] + }, + "trialDays": { + "type": "integer", + "description": "Trial days", + "x-example": 14, + "format": "int32" + }, + "trialEndDate": { + "type": "string", + "description": "Trial end date", + "x-example": "2020-10-15T06:38:00.000+00:00", + "x-nullable": true + } + }, + "required": [ + "amount", + "grossAmount", + "discount", + "credits", + "items", + "discounts", + "trialDays" + ], + "example": { + "amount": 50, + "grossAmount": 50, + "discount": 50, + "credits": 50, + "items": [], + "discounts": [], + "trialDays": 14, + "trialEndDate": "2020-10-15T06:38:00.000+00:00" + } + }, + "estimationDeleteOrganization": { + "description": "DeleteOrganization", + "type": "object", + "properties": { + "unpaidInvoices": { + "type": "array", + "description": "List of unpaid invoices", + "items": { + "type": "object", + "$ref": "#\/definitions\/invoice" + }, + "x-example": [] + } + }, + "required": [ + "unpaidInvoices" + ], + "example": { + "unpaidInvoices": [] + } + }, + "estimation_item": { + "description": "Item", + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "Label", + "x-example": "Plan name" + }, + "value": { + "type": "number", + "description": "Gross payable amount", + "x-example": 50, + "format": "double" + } + }, + "required": [ + "label", + "value" + ], + "example": { + "label": "Plan name", + "value": 50 + } + }, + "estimationPlanChange": { + "description": "EstimationPlanChange", + "type": "object", + "properties": { + "currentBillingPlanId": { + "type": "string", + "description": "Current billing plan ID", + "x-example": "tier-2" + }, + "targetBillingPlanId": { + "type": "string", + "description": "Target billing plan ID", + "x-example": "tier-0" + }, + "direction": { + "type": "string", + "description": "Direction of plan change: upgrade, downgrade, or same", + "x-example": "downgrade" + }, + "estimation": { + "type": "object", + "description": "Cost estimation details", + "x-example": null, + "items": { + "type": "object", + "$ref": "#\/definitions\/planChangeEstimationDetails" + } + }, + "limits": { + "type": "object", + "description": "Plan limits and compliance information", + "x-example": null, + "items": { + "type": "object", + "$ref": "#\/definitions\/planChangeLimits" + } + } + }, + "required": [ + "currentBillingPlanId", + "targetBillingPlanId", + "direction", + "estimation", + "limits" + ], + "example": { + "currentBillingPlanId": "tier-2", + "targetBillingPlanId": "tier-0", + "direction": "downgrade", + "estimation": null, + "limits": null + } + }, + "estimationUpdatePlan": { + "description": "UpdatePlan", + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "Total amount", + "x-example": 50, + "format": "double" + }, + "grossAmount": { + "type": "number", + "description": "Gross payable amount", + "x-example": 50, + "format": "double" + }, + "discount": { + "type": "number", + "description": "Discount amount", + "x-example": 50, + "format": "double" + }, + "credits": { + "type": "number", + "description": "Credits amount", + "x-example": 50, + "format": "double" + }, + "items": { + "type": "array", + "description": "Estimation items", + "items": { + "type": "object", + "$ref": "#\/definitions\/estimation_item" + }, + "x-example": [] + }, + "discounts": { + "type": "array", + "description": "Estimation discount items", + "items": { + "type": "object", + "$ref": "#\/definitions\/estimation_item" + }, + "x-example": [] + }, + "trialDays": { + "type": "integer", + "description": "Trial days", + "x-example": 14, + "format": "int32" + }, + "trialEndDate": { + "type": "string", + "description": "Trial end date", + "x-example": "2020-10-15T06:38:00.000+00:00", + "x-nullable": true + }, + "organizationCredits": { + "type": "number", + "description": "Organization's existing credits", + "x-example": 0, + "format": "double" + } + }, + "required": [ + "amount", + "grossAmount", + "discount", + "credits", + "items", + "discounts", + "trialDays", + "organizationCredits" + ], + "example": { + "amount": 50, + "grossAmount": 50, + "discount": 50, + "credits": 50, + "items": [], + "discounts": [], + "trialDays": 14, + "trialEndDate": "2020-10-15T06:38:00.000+00:00", + "organizationCredits": 0 + } + }, + "dedicatedDatabaseExtensions": { + "description": "Extensions", + "type": "object", + "properties": { + "installed": { + "type": "array", + "description": "List of installed extensions.", + "items": { + "type": "string" + }, + "x-example": [ + "pgvector", + "uuid-ossp" + ] + }, + "available": { + "type": "array", + "description": "List of available extensions that can be installed.", + "items": { + "type": "string" + }, + "x-example": [ + "postgis", + "pg_trgm" + ] + } + }, + "required": [ + "installed", + "available" + ], + "example": { + "installed": [ + "pgvector", + "uuid-ossp" + ], + "available": [ + "postgis", + "pg_trgm" + ] + } + }, + "dedicatedDatabaseHAReplica": { + "description": "HAReplica", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Replica identifier.", + "x-example": "replica-1" + }, + "role": { + "type": "string", + "description": "Replica role. Possible values: primary (accepts reads and writes), replica (read-only follower).", + "x-example": "replica" + }, + "status": { + "type": "string", + "description": "Replica health status. Possible values: healthy (fully synced), degraded (lagging behind primary), unhealthy (replication broken or unreachable).", + "x-example": "healthy" + }, + "lagSeconds": { + "type": "number", + "description": "Replication lag in seconds.", + "x-example": 0.5, + "format": "double" + } + }, + "required": [ + "$id", + "role", + "status", + "lagSeconds" + ], + "example": { + "$id": "replica-1", + "role": "replica", + "status": "healthy", + "lagSeconds": 0.5 + } + }, + "dedicatedDatabaseHAStatus": { + "description": "HAStatus", + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether high availability is enabled.", + "x-example": true + }, + "replicaCount": { + "type": "integer", + "description": "Number of configured replicas.", + "x-example": 2, + "format": "int32" + }, + "syncMode": { + "type": "string", + "description": "Replication sync mode. Possible values: async (asynchronous, fastest), sync (synchronous, strong consistency), quorum (quorum-based, majority of replicas must confirm).", + "x-example": "async" + }, + "replicas": { + "type": "array", + "description": "List of replica statuses.", + "items": { + "type": "object", + "$ref": "#\/definitions\/dedicatedDatabaseHAReplica" + }, + "x-example": [] + } + }, + "required": [ + "enabled", + "replicaCount", + "syncMode", + "replicas" + ], + "example": { + "enabled": true, + "replicaCount": 2, + "syncMode": "async", + "replicas": [] + } + }, "invoice": { "description": "Invoice", "type": "object", @@ -97673,7 +101324,8 @@ "items": { "type": "object", "$ref": "#\/definitions\/billingLimits" - } + }, + "x-nullable": true }, "billingPlanDowngrade": { "type": "string", @@ -97734,7 +101386,6 @@ "programManagerCalendar", "programDiscordChannelName", "programDiscordChannelUrl", - "billingLimits", "billingPlanDowngrade", "billingTaxId", "markedForDeletion", @@ -97989,1337 +101640,1186 @@ "failed": false } }, - "backupPolicy": { - "description": "backup", + "dedicatedDatabasePerformanceInsights": { + "description": "PerformanceInsights", "type": "object", "properties": { - "$id": { - "type": "string", - "description": "Backup policy ID.", - "x-example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "Backup policy name.", - "x-example": "Hourly backups" - }, - "$createdAt": { - "type": "string", - "description": "Policy creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Policy update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "services": { - "type": "array", - "description": "The services that are backed up by this policy.", - "items": { - "type": "string" - }, - "x-example": "['databases', 'storage']" - }, - "resources": { + "topQueries": { "type": "array", - "description": "The resources that are backed up by this policy.", + "description": "Top queries by total execution time.", "items": { - "type": "string" - }, - "x-example": "['databases', 'collections', 'attributes', 'indexes']" - }, - "resourceId": { - "type": "string", - "description": "The resource ID to backup. Set only if this policy should backup a single resource.", - "x-example": "DB1", - "x-nullable": true - }, - "resourceType": { - "type": "string", - "description": "The resource type to backup. Set only if this policy should backup a single resource.", - "x-example": "database", - "x-nullable": true - }, - "retention": { - "type": "integer", - "description": "How many days to keep the backup before it will be automatically deleted.", - "x-example": 7, - "format": "int32" - }, - "schedule": { - "type": "string", - "description": "Policy backup schedule in CRON format.", - "x-example": "0 * * * *" - }, - "enabled": { - "type": "boolean", - "description": "Is this policy enabled.", - "x-example": true - } - }, - "required": [ - "$id", - "name", - "$createdAt", - "$updatedAt", - "services", - "resources", - "retention", - "schedule", - "enabled" - ], - "example": { - "$id": "5e5ea5c16897e", - "name": "Hourly backups", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "services": "['databases', 'storage']", - "resources": "['databases', 'collections', 'attributes', 'indexes']", - "resourceId": "DB1", - "resourceType": "database", - "retention": 7, - "schedule": "0 * * * *", - "enabled": true - } - }, - "consoleRegion": { - "description": "Region", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Region ID", - "x-example": "eu-fr" - }, - "name": { - "type": "string", - "description": "Region name", - "x-example": "EU (Frankfurt)" - }, - "available": { - "type": "boolean", - "description": "Does the organization have access to this region.", - "x-example": false - }, - "disabled": { - "type": "boolean", - "description": "Does the backend support this region.", - "x-example": false - }, - "default": { - "type": "boolean", - "description": "Is this the region default.", - "x-example": true - }, - "flag": { - "type": "string", - "description": "Region flag code.", - "x-example": "fr" - } - }, - "required": [ - "$id", - "name", - "available", - "disabled", - "default", - "flag" - ], - "example": { - "$id": "eu-fr", - "name": "EU (Frankfurt)", - "available": false, - "disabled": false, - "default": true, - "flag": "fr" - } - }, - "backupRestoration": { - "description": "Restoration", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Restoration ID.", - "x-example": "5e5ea5c16897e" - }, - "$createdAt": { - "type": "string", - "description": "Restoration creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "$updatedAt": { - "type": "string", - "description": "Restoration update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "archiveId": { - "type": "string", - "description": "Backup archive ID.", - "x-example": "did8jx6ws45jana098ab7" - }, - "policyId": { - "type": "string", - "description": "Backup policy ID.", - "x-example": "did8jx6ws45jana098ab7" - }, - "status": { - "type": "string", - "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", - "x-example": "completed" - }, - "startedAt": { - "type": "string", - "description": "The backup start time.", - "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "migrationId": { - "type": "string", - "description": "Migration ID.", - "x-example": "did8jx6ws45jana098ab7" - }, - "services": { - "type": "array", - "description": "The services that are backed up by this policy.", - "items": { - "type": "string" - }, - "x-example": "['databases', 'storage']" - }, - "resources": { - "type": "array", - "description": "The resources that are backed up by this policy.", - "items": { - "type": "string" - }, - "x-example": "['databases', 'collections', 'attributes', 'indexes']" - }, - "options": { - "type": "string", - "description": "Optional data in key-value object. ", - "x-example": "{databases.database[{oldId, newId, newName}]}" - } - }, - "required": [ - "$id", - "$createdAt", - "$updatedAt", - "archiveId", - "policyId", - "status", - "startedAt", - "migrationId", - "services", - "resources", - "options" - ], - "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "archiveId": "did8jx6ws45jana098ab7", - "policyId": "did8jx6ws45jana098ab7", - "status": "completed", - "startedAt": "2020-10-15T06:38:00.000+00:00", - "migrationId": "did8jx6ws45jana098ab7", - "services": "['databases', 'storage']", - "resources": "['databases', 'collections', 'attributes', 'indexes']", - "options": "{databases.database[{oldId, newId, newName}]}" - } - }, - "review": { - "description": "Review", - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of user", - "x-example": "" - }, - "image": { - "type": "string", - "description": "Reviewer image", - "x-example": "" - }, - "description": { - "type": "string", - "description": "Reviewer description", - "x-example": "" - }, - "review": { - "type": "string", - "description": "Review", - "x-example": "" - } - }, - "required": [ - "name", - "image", - "description", - "review" - ], - "example": { - "name": "", - "image": "", - "description": "", - "review": "" - } - }, - "roles": { - "description": "Roles", - "type": "object", - "properties": { - "scopes": { - "type": "array", - "description": "Array of scopes accessible to current user.", - "items": { - "type": "string" + "type": "object", + "$ref": "#\/definitions\/dedicatedDatabasePerformanceInsightsQuery" }, - "x-example": "users.read" + "x-example": [] }, - "roles": { + "waitEvents": { "type": "array", - "description": "Array of roles assigned to current user.", + "description": "Active wait events.", "items": { - "type": "string" + "type": "object", + "$ref": "#\/definitions\/dedicatedDatabasePerformanceInsightsWaitEvent" }, - "x-example": "developer" - } - }, - "required": [ - "scopes", - "roles" - ], - "example": { - "scopes": "users.read", - "roles": "developer" - } - }, - "usageEvent": { - "description": "usageEvent", - "type": "object", - "properties": { - "metric": { - "type": "string", - "description": "The metric key.", - "x-example": "bandwidth" + "x-example": [] }, - "value": { + "totalCalls": { "type": "integer", - "description": "The metric value.", - "x-example": 5000, + "description": "Total number of query calls.", + "x-example": 150000, "format": "int32" }, - "time": { - "type": "string", - "description": "The event timestamp.", - "x-example": "2026-04-09T12:00:00.000+00:00" - }, - "path": { - "type": "string", - "description": "The API endpoint path.", - "x-example": "\/v1\/storage\/files" - }, - "method": { - "type": "string", - "description": "The HTTP method.", - "x-example": "POST" - }, - "status": { - "type": "string", - "description": "HTTP status code. Stored as string to preserve unset state (empty string = not available).", - "x-example": "201" - }, - "resourceType": { - "type": "string", - "description": "The resource type.", - "x-example": "bucket" - }, - "resourceId": { - "type": "string", - "description": "The resource ID.", - "x-example": "abc123" - }, - "countryCode": { - "type": "string", - "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format.", - "x-example": "US" + "totalTimeMs": { + "type": "number", + "description": "Total query execution time in milliseconds.", + "x-example": 85432.12, + "format": "double" }, - "userAgent": { - "type": "string", - "description": "The user agent string.", - "x-example": "AppwriteSDK\/1.0" + "avgTimeMs": { + "type": "number", + "description": "Average query execution time in milliseconds.", + "x-example": 0.57, + "format": "double" } }, "required": [ - "metric", - "value", - "time", - "path", - "method", - "status", - "resourceType", - "resourceId", - "countryCode", - "userAgent" + "topQueries", + "waitEvents", + "totalCalls", + "totalTimeMs", + "avgTimeMs" ], "example": { - "metric": "bandwidth", - "value": 5000, - "time": "2026-04-09T12:00:00.000+00:00", - "path": "\/v1\/storage\/files", - "method": "POST", - "status": "201", - "resourceType": "bucket", - "resourceId": "abc123", - "countryCode": "US", - "userAgent": "AppwriteSDK\/1.0" + "topQueries": [], + "waitEvents": [], + "totalCalls": 150000, + "totalTimeMs": 85432.12, + "avgTimeMs": 0.57 } }, - "usageEventList": { - "description": "Usage events list", + "dedicatedDatabasePerformanceInsightsQuery": { + "description": "PerformanceInsightsQuery", "type": "object", "properties": { - "total": { + "query": { + "type": "string", + "description": "The SQL query text.", + "x-example": "SELECT * FROM users WHERE email = $1" + }, + "calls": { "type": "integer", - "description": "Total number of events that matched your query.", - "x-example": 5, + "description": "Number of times this query has been executed.", + "x-example": 42, "format": "int32" }, - "events": { - "type": "array", - "description": "List of events.", - "items": { - "type": "object", - "$ref": "#\/definitions\/usageEvent" - }, - "x-example": "" + "totalTimeMs": { + "type": "number", + "description": "Total execution time in milliseconds.", + "x-example": 1523.4, + "format": "double" + }, + "meanTimeMs": { + "type": "number", + "description": "Mean execution time in milliseconds.", + "x-example": 36.27, + "format": "double" + }, + "rows": { + "type": "integer", + "description": "Total rows returned or affected.", + "x-example": 1250, + "format": "int32" } }, "required": [ - "total", - "events" + "query", + "calls", + "totalTimeMs", + "meanTimeMs", + "rows" ], "example": { - "total": 5, - "events": "" + "query": "SELECT * FROM users WHERE email = $1", + "calls": 42, + "totalTimeMs": 1523.4, + "meanTimeMs": 36.27, + "rows": 1250 } }, - "usageGauge": { - "description": "usageGauge", + "dedicatedDatabasePerformanceInsightsWaitEvent": { + "description": "PerformanceInsightsWaitEvent", "type": "object", "properties": { - "metric": { + "event": { "type": "string", - "description": "The metric key.", - "x-example": "users" + "description": "Wait event name.", + "x-example": "DataFileRead" }, - "value": { + "type": { + "type": "string", + "description": "Wait event type or category.", + "x-example": "IO" + }, + "count": { "type": "integer", - "description": "The current snapshot value.", - "x-example": 1500, + "description": "Number of occurrences.", + "x-example": 15, "format": "int32" }, - "time": { - "type": "string", - "description": "The snapshot timestamp.", - "x-example": "2026-04-09T12:00:00.000+00:00" + "totalWaitMs": { + "type": "number", + "description": "Total wait time in milliseconds.", + "x-example": 234.5, + "format": "double" } }, "required": [ - "metric", - "value", - "time" + "event", + "type", + "count", + "totalWaitMs" ], "example": { - "metric": "users", - "value": 1500, - "time": "2026-04-09T12:00:00.000+00:00" + "event": "DataFileRead", + "type": "IO", + "count": 15, + "totalWaitMs": 234.5 } }, - "usageGaugeList": { - "description": "Usage gauges list", + "dedicatedDatabasePITRWindows": { + "description": "PITRWindows", "type": "object", "properties": { - "total": { - "type": "integer", - "description": "Total number of gauges that matched your query.", - "x-example": 5, - "format": "int32" + "earliest": { + "type": "string", + "description": "Earliest available recovery point.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "gauges": { - "type": "array", - "description": "List of gauges.", - "items": { - "type": "object", - "$ref": "#\/definitions\/usageGauge" - }, - "x-example": "" + "latest": { + "type": "string", + "description": "Latest available recovery point.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ - "total", - "gauges" + "earliest", + "latest" ], "example": { - "total": 5, - "gauges": "" + "earliest": "2020-10-15T06:38:00.000+00:00", + "latest": "2020-10-15T06:38:00.000+00:00" } }, - "usageOrganization": { - "description": "UsageOrganization", + "planChangeEstimationDetails": { + "description": "PlanChangeEstimationDetails", "type": "object", "properties": { - "bandwidth": { - "type": "array", - "description": "Aggregated stats for number of requests.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "users": { - "type": "array", - "description": "Aggregated stats for consumed bandwidth.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "executions": { - "type": "array", - "description": "Aggregated stats for function executions.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "databasesReads": { - "type": "array", - "description": "Aggregated stats for database reads.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "databasesWrites": { - "type": "array", - "description": "Aggregated stats for database writes.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "imageTransformations": { - "type": "array", - "description": "Aggregated stats for file transformations.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "imageTransformationsTotal": { - "type": "integer", - "description": "Aggregated stats for total file transformations.", - "x-example": 0, - "format": "int32" - }, - "screenshotsGenerated": { - "type": "array", - "description": "Aggregated stats for file transformations.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "screenshotsGeneratedTotal": { - "type": "integer", - "description": "Aggregated stats for total file transformations.", - "x-example": 0, - "format": "int32" - }, - "imagineCredits": { - "type": "array", - "description": "Aggregated stats for imagine credits.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] - }, - "imagineCreditsTotal": { - "type": "integer", - "description": "Aggregated stats for total imagine credits.", - "x-example": 0, - "format": "int32" - }, - "usersTotal": { - "type": "integer", - "description": "Aggregated stats for total users.", - "x-example": 0, - "format": "int32" - }, - "executionsTotal": { - "type": "integer", - "description": "Aggregated stats for total executions.", - "x-example": 0, - "format": "int32" - }, - "executionsMBSecondsTotal": { - "type": "integer", - "description": "Aggregated stats for function executions in mb seconds.", - "x-example": 0, - "format": "int32" - }, - "buildsMBSecondsTotal": { - "type": "integer", - "description": "Aggregated stats for function builds in mb seconds.", - "x-example": 0, - "format": "int32" - }, - "filesStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total file storage.", - "x-example": 0, - "format": "int32" - }, - "buildsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total builds storage.", - "x-example": 0, - "format": "int32" - }, - "deploymentsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total deployments storage.", - "x-example": 0, - "format": "int32" - }, - "databasesStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total databases storage.", - "x-example": 0, - "format": "int32" - }, - "databasesReadsTotal": { - "type": "integer", - "description": "Aggregated stats for total databases reads.", - "x-example": 0, - "format": "int32" - }, - "databasesWritesTotal": { - "type": "integer", - "description": "Aggregated stats for total databases writes.", - "x-example": 0, - "format": "int32" - }, - "backupsStorageTotal": { - "type": "integer", - "description": "Aggregated stats for total backups storage.", - "x-example": 0, - "format": "int32" - }, - "storageTotal": { - "type": "integer", - "description": "Aggregated stats for total storage.", - "x-example": 0, - "format": "int32" + "currency": { + "type": "string", + "description": "Currency code", + "x-example": "USD" }, - "authPhoneTotal": { - "type": "integer", - "description": "Aggregated stats for total auth phone.", - "x-example": 0, - "format": "int32" + "grossAmount": { + "type": "number", + "description": "Gross amount after all discounts and credits", + "x-example": 15, + "format": "double" }, - "authPhoneEstimate": { - "type": "integer", - "description": "Aggregated stats for total auth phone estimation.", + "credits": { + "type": "number", + "description": "Credits applied from coupon", "x-example": 0, - "format": "int32" - }, - "projects": { - "type": "array", - "description": "Aggregated stats for each projects.", - "items": { - "type": "object", - "$ref": "#\/definitions\/usageOrganizationProject" - }, - "x-example": [] + "format": "double" }, - "realtimeConnections": { - "type": "array", - "description": "Aggregated stats for realtime connections.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] + "organizationCredits": { + "type": "number", + "description": "Organization's existing credits applied", + "x-example": 5, + "format": "double" }, - "realtimeConnectionsTotal": { - "type": "integer", - "description": "Aggregated stats for total realtime connections.", + "discount": { + "type": "number", + "description": "Discount amount from prorated invoices", "x-example": 0, - "format": "int32" + "format": "double" }, - "realtimeMessages": { - "type": "array", - "description": "Aggregated stats for realtime messages.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] + "amount": { + "type": "number", + "description": "Total amount before discounts and credits", + "x-example": 20, + "format": "double" }, - "realtimeMessagesTotal": { - "type": "integer", - "description": "Aggregated stats for total realtime messages.", - "x-example": 0, - "format": "int32" + "nextInvoiceDate": { + "type": "string", + "description": "Next invoice date", + "x-example": "2025-12-01T00:00:00.000Z" }, - "realtimeBandwidth": { - "type": "array", - "description": "Aggregated stats for realtime bandwidth.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] + "items": { + "type": "object", + "additionalProperties": true, + "description": "Line items breakdown", + "x-example": [ + { + "label": "Starter plan", + "value": 0 + }, + { + "label": "Additional seats", + "value": 10 + } + ] }, - "realtimeBandwidthTotal": { - "type": "integer", - "description": "Aggregated stats for total realtime bandwidth.", - "x-example": 0, - "format": "int32" + "discounts": { + "type": "object", + "additionalProperties": true, + "description": "Applied discounts breakdown", + "x-example": [ + { + "label": "Organization credits", + "value": 5 + } + ] } }, "required": [ - "bandwidth", - "users", - "executions", - "databasesReads", - "databasesWrites", - "imageTransformations", - "imageTransformationsTotal", - "screenshotsGenerated", - "screenshotsGeneratedTotal", - "imagineCredits", - "imagineCreditsTotal", - "usersTotal", - "executionsTotal", - "executionsMBSecondsTotal", - "buildsMBSecondsTotal", - "filesStorageTotal", - "buildsStorageTotal", - "deploymentsStorageTotal", - "databasesStorageTotal", - "databasesReadsTotal", - "databasesWritesTotal", - "backupsStorageTotal", - "storageTotal", - "authPhoneTotal", - "authPhoneEstimate", - "projects", - "realtimeConnections", - "realtimeConnectionsTotal", - "realtimeMessages", - "realtimeMessagesTotal", - "realtimeBandwidth", - "realtimeBandwidthTotal" + "currency", + "grossAmount", + "credits", + "organizationCredits", + "discount", + "amount", + "nextInvoiceDate", + "items", + "discounts" ], "example": { - "bandwidth": [], - "users": [], - "executions": [], - "databasesReads": [], - "databasesWrites": [], - "imageTransformations": [], - "imageTransformationsTotal": 0, - "screenshotsGenerated": [], - "screenshotsGeneratedTotal": 0, - "imagineCredits": [], - "imagineCreditsTotal": 0, - "usersTotal": 0, - "executionsTotal": 0, - "executionsMBSecondsTotal": 0, - "buildsMBSecondsTotal": 0, - "filesStorageTotal": 0, - "buildsStorageTotal": 0, - "deploymentsStorageTotal": 0, - "databasesStorageTotal": 0, - "databasesReadsTotal": 0, - "databasesWritesTotal": 0, - "backupsStorageTotal": 0, - "storageTotal": 0, - "authPhoneTotal": 0, - "authPhoneEstimate": 0, - "projects": [], - "realtimeConnections": [], - "realtimeConnectionsTotal": 0, - "realtimeMessages": [], - "realtimeMessagesTotal": 0, - "realtimeBandwidth": [], - "realtimeBandwidthTotal": 0 + "currency": "USD", + "grossAmount": 15, + "credits": 0, + "organizationCredits": 5, + "discount": 0, + "amount": 20, + "nextInvoiceDate": "2025-12-01T00:00:00.000Z", + "items": [ + { + "label": "Starter plan", + "value": 0 + }, + { + "label": "Additional seats", + "value": 10 + } + ], + "discounts": [ + { + "label": "Organization credits", + "value": 5 + } + ] } }, - "usageOrganizationProject": { - "description": "UsageOrganizationProject", + "planChangeLimits": { + "description": "PlanChangeLimits", "type": "object", "properties": { - "projectId": { - "type": "string", - "description": "projectId", - "x-example": "5e5ea5c16897e" + "totalProjects": { + "type": "integer", + "description": "Total number of projects in the organization", + "x-example": 5, + "format": "int32" }, - "bandwidth": { + "nonCompliantProjects": { + "type": "integer", + "description": "Number of projects exceeding target plan limits", + "x-example": 2, + "format": "int32" + }, + "canChangePlan": { + "type": "boolean", + "description": "Whether the plan change is allowed", + "x-example": false + }, + "projects": { "type": "array", - "description": "Aggregated stats for number of requests.", + "description": "Project compliance details", "items": { "type": "object", - "$ref": "#\/definitions\/metric" + "$ref": "#\/definitions\/planChangeProjectCompliance" }, "x-example": [] }, - "users": { + "unsupportedAddons": { "type": "array", - "description": "Aggregated stats for consumed bandwidth.", + "description": "Active addon keys that the target plan does not support. When non-empty, `canChangePlan` is false.", "items": { - "type": "object", - "$ref": "#\/definitions\/metric" + "type": "string" }, - "x-example": [] + "x-example": [ + "baa" + ] + } + }, + "required": [ + "totalProjects", + "nonCompliantProjects", + "canChangePlan", + "projects", + "unsupportedAddons" + ], + "example": { + "totalProjects": 5, + "nonCompliantProjects": 2, + "canChangePlan": false, + "projects": [], + "unsupportedAddons": [ + "baa" + ] + } + }, + "planChangeProjectCompliance": { + "description": "PlanChangeProjectCompliance", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Project ID", + "x-example": "proj_a" }, - "executions": { - "type": "integer", - "description": "Aggregated stats for function executions.", - "x-example": [], - "format": "int32" + "name": { + "type": "string", + "description": "Project name", + "x-example": "Marketing Site" }, - "databasesReads": { - "type": "array", - "description": "Aggregated stats for database reads.", - "items": { - "type": "object", - "$ref": "#\/definitions\/metric" - }, - "x-example": [] + "isCompliant": { + "type": "boolean", + "description": "Whether the project complies with target plan limits", + "x-example": false }, - "databasesWrites": { + "resources": { "type": "array", - "description": "Aggregated stats for database writes.", + "description": "Resource compliance details", "items": { "type": "object", - "$ref": "#\/definitions\/metric" + "$ref": "#\/definitions\/planChangeResourceCompliance" }, "x-example": [] }, - "executionsMBSeconds": { - "type": "integer", - "description": "Aggregated stats for function executions in mb seconds.", - "x-example": 0, - "format": "int32" + "error": { + "type": "string", + "description": "Failure reason when compliance could not be evaluated. Present only when the project DB or Regions API was unreachable; in that case `isCompliant` is false (fail closed) and `resources` is empty.", + "x-example": "Failed to get project compliance from Regions API. Status: 500", + "x-nullable": true + } + }, + "required": [ + "$id", + "name", + "isCompliant", + "resources" + ], + "example": { + "$id": "proj_a", + "name": "Marketing Site", + "isCompliant": false, + "resources": [], + "error": "Failed to get project compliance from Regions API. Status: 500" + } + }, + "planChangeResourceCompliance": { + "description": "PlanChangeResourceCompliance", + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Resource type", + "x-example": "databases" }, - "buildsMBSeconds": { + "currentUsage": { "type": "integer", - "description": "Aggregated stats for function builds in mb seconds.", - "x-example": 0, + "description": "Current usage count", + "x-example": 3, "format": "int32" }, - "storage": { + "limit": { "type": "integer", - "description": "Aggregated stats for number of documents.", - "x-example": [], + "description": "Allowed limit in target plan", + "x-example": 1, "format": "int32" }, - "authPhoneTotal": { + "status": { + "type": "string", + "description": "Compliance status", + "x-example": "over_limit" + }, + "excess": { "type": "integer", - "description": "Aggregated stats for phone authentication.", - "x-example": [], + "description": "Number of resources exceeding the limit", + "x-example": 2, "format": "int32" }, - "authPhoneEstimate": { - "type": "number", - "description": "Aggregated stats for phone authentication estimated cost.", - "x-example": [], - "format": "double" + "resolutionHint": { + "type": "string", + "description": "Suggestion for resolving the compliance issue", + "x-example": "Delete or migrate 2 databases." + } + }, + "required": [ + "type", + "currentUsage", + "limit", + "status", + "excess", + "resolutionHint" + ], + "example": { + "type": "databases", + "currentUsage": 3, + "limit": 1, + "status": "over_limit", + "excess": 2, + "resolutionHint": "Delete or migrate 2 databases." + } + }, + "backupPolicy": { + "description": "backup", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Backup policy ID.", + "x-example": "5e5ea5c16897e" }, - "databasesReadsTotal": { - "type": "integer", - "description": "Aggregated stats for total databases reads.", - "x-example": 0, - "format": "int32" + "name": { + "type": "string", + "description": "Backup policy name.", + "x-example": "Hourly backups" }, - "databasesWritesTotal": { - "type": "integer", - "description": "Aggregated stats for total databases writes.", - "x-example": 0, - "format": "int32" + "$createdAt": { + "type": "string", + "description": "Policy creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "imageTransformations": { + "$updatedAt": { + "type": "string", + "description": "Policy update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "services": { "type": "array", - "description": "Aggregated stats for file transformations.", + "description": "The services that are backed up by this policy.", "items": { - "type": "object", - "$ref": "#\/definitions\/metric" + "type": "string" }, - "x-example": [] - }, - "imageTransformationsTotal": { - "type": "integer", - "description": "Aggregated stats for total file transformations.", - "x-example": 0, - "format": "int32" + "x-example": "['databases', 'storage']" }, - "screenshotsGenerated": { + "resources": { "type": "array", - "description": "Aggregated stats for file transformations.", + "description": "The resources that are backed up by this policy.", "items": { - "type": "object", - "$ref": "#\/definitions\/metric" + "type": "string" }, - "x-example": [] + "x-example": "['databases', 'collections', 'attributes', 'indexes']" }, - "screenshotsGeneratedTotal": { - "type": "integer", - "description": "Aggregated stats for total file transformations.", - "x-example": 0, - "format": "int32" + "resourceId": { + "type": "string", + "description": "The resource ID to backup. Set only if this policy should backup a single resource.", + "x-example": "DB1", + "x-nullable": true }, - "imagineCredits": { + "resourceType": { + "type": "string", + "description": "The resource type to backup. Set only if this policy should backup a single resource.", + "x-example": "database", + "x-nullable": true + }, + "retention": { "type": "integer", - "description": "Aggregated stats for imagine credits.", - "x-example": 0, + "description": "How many days to keep the backup before it will be automatically deleted.", + "x-example": 7, "format": "int32" }, - "realtimeConnections": { + "schedule": { + "type": "string", + "description": "Policy backup schedule in CRON format.", + "x-example": "0 * * * *" + }, + "enabled": { + "type": "boolean", + "description": "Is this policy enabled.", + "x-example": true + } + }, + "required": [ + "$id", + "name", + "$createdAt", + "$updatedAt", + "services", + "resources", + "retention", + "schedule", + "enabled" + ], + "example": { + "$id": "5e5ea5c16897e", + "name": "Hourly backups", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "resourceId": "DB1", + "resourceType": "database", + "retention": 7, + "schedule": "0 * * * *", + "enabled": true + } + }, + "dedicatedDatabasePooler": { + "description": "PoolerConfig", + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether connection pooling is enabled.", + "x-example": true + }, + "mode": { + "type": "string", + "description": "Connection pool mode. Possible values: transaction (releases connections back to pool after each transaction), session (holds connections for the entire client session).", + "x-example": "transaction" + }, + "maxConnections": { "type": "integer", - "description": "Aggregated stats for realtime connections.", - "x-example": 0, + "description": "Maximum number of pooled connections.", + "x-example": 200, "format": "int32" }, - "realtimeMessages": { + "defaultPoolSize": { "type": "integer", - "description": "Aggregated stats for realtime messages.", - "x-example": 0, + "description": "Default pool size per user.", + "x-example": 25, "format": "int32" }, - "realtimeBandwidth": { + "port": { "type": "integer", - "description": "Aggregated stats for realtime bandwidth.", - "x-example": 0, + "description": "Pooler listening port.", + "x-example": 6432, "format": "int32" + }, + "readWriteSplitting": { + "type": "boolean", + "description": "Whether SELECTs are routed to HA replicas while writes and locked reads stay on the primary. Active only when HA is enabled.", + "x-example": true + }, + "poolerCpuRequest": { + "type": "string", + "description": "Effective CPU request applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (5% of DB CPU, floor 100m) unless overridden.", + "x-example": "100m" + }, + "poolerCpuLimit": { + "type": "string", + "description": "Effective CPU limit applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (10% of DB CPU, floor 200m) unless overridden.", + "x-example": "200m" + }, + "poolerMemoryRequest": { + "type": "string", + "description": "Effective memory request applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (7.5% of DB memory, floor 64Mi) unless overridden.", + "x-example": "64Mi" + }, + "poolerMemoryLimit": { + "type": "string", + "description": "Effective memory limit applied to the pooler sidecar container (Kubernetes quantity). Returns the proportional default (15% of DB memory, floor 128Mi) unless overridden.", + "x-example": "128Mi" } }, "required": [ - "projectId", - "bandwidth", - "users", - "executions", - "databasesReads", - "databasesWrites", - "executionsMBSeconds", - "buildsMBSeconds", - "storage", - "authPhoneTotal", - "authPhoneEstimate", - "databasesReadsTotal", - "databasesWritesTotal", - "imageTransformations", - "imageTransformationsTotal", - "screenshotsGenerated", - "screenshotsGeneratedTotal", - "imagineCredits", - "realtimeConnections", - "realtimeMessages", - "realtimeBandwidth" + "enabled", + "mode", + "maxConnections", + "defaultPoolSize", + "port", + "readWriteSplitting", + "poolerCpuRequest", + "poolerCpuLimit", + "poolerMemoryRequest", + "poolerMemoryLimit" ], "example": { - "projectId": "5e5ea5c16897e", - "bandwidth": [], - "users": [], - "executions": [], - "databasesReads": [], - "databasesWrites": [], - "executionsMBSeconds": 0, - "buildsMBSeconds": 0, - "storage": [], - "authPhoneTotal": [], - "authPhoneEstimate": [], - "databasesReadsTotal": 0, - "databasesWritesTotal": 0, - "imageTransformations": [], - "imageTransformationsTotal": 0, - "screenshotsGenerated": [], - "screenshotsGeneratedTotal": 0, - "imagineCredits": 0, - "realtimeConnections": 0, - "realtimeMessages": 0, - "realtimeBandwidth": 0 + "enabled": true, + "mode": "transaction", + "maxConnections": 200, + "defaultPoolSize": 25, + "port": 6432, + "readWriteSplitting": true, + "poolerCpuRequest": "100m", + "poolerCpuLimit": "200m", + "poolerMemoryRequest": "64Mi", + "poolerMemoryLimit": "128Mi" } }, - "domain": { - "description": "Domain", + "program": { + "description": "Program", "type": "object", "properties": { "$id": { "type": "string", - "description": "Domain ID.", - "x-example": "5e5ea5c16897e" + "description": "Program ID", + "x-example": "" }, - "$createdAt": { + "title": { "type": "string", - "description": "Domain creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Program title", + "x-example": "" }, - "$updatedAt": { + "description": { "type": "string", - "description": "Domain update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Program description", + "x-example": "" }, - "domain": { + "tag": { "type": "string", - "description": "Domain name.", - "x-example": "example.com" + "description": "Program tag for highlighting on console", + "x-example": null }, - "registrar": { + "icon": { "type": "string", - "description": "Domain registrar (e.g. \"appwrite\" or \"third_party\").", - "x-example": "appwrite" + "description": "Program icon for highlighting on console", + "x-example": null }, - "nameservers": { + "url": { "type": "string", - "description": "Nameservers setting. \"Appwrite\" or empty string.", - "x-example": "Appwrite" + "description": "URL for more information on this program", + "x-example": "" }, - "expire": { + "active": { + "type": "boolean", + "description": "Whether this program is active", + "x-example": false + }, + "external": { + "type": "boolean", + "description": "Whether this program is external", + "x-example": false + }, + "billingPlanId": { "type": "string", - "description": "Domain expiry date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Billing plan ID that this is program is associated with.", + "x-example": "" + } + }, + "required": [ + "$id", + "title", + "description", + "tag", + "icon", + "url", + "active", + "external", + "billingPlanId" + ], + "example": { + "$id": "", + "title": "", + "description": "", + "tag": null, + "icon": null, + "url": "", + "active": false, + "external": false, + "billingPlanId": "" + } + }, + "dedicatedDatabaseQueryExplanation": { + "description": "QueryExplanation", + "type": "object", + "properties": { + "plan": { + "type": "array", + "description": "Structured query execution plan. Contents are engine-specific.", + "items": { + "type": "object", + "$ref": "#\/definitions\/any" + }, + "x-example": [] }, - "renewal": { + "raw": { "type": "string", - "description": "Domain renewal date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Raw EXPLAIN output from the database engine.", + "x-example": "Seq Scan on users (cost=0.00..35.50 rows=2550 width=36)" + } + }, + "required": [ + "plan", + "raw" + ], + "example": { + "plan": [], + "raw": "Seq Scan on users (cost=0.00..35.50 rows=2550 width=36)" + } + }, + "consoleRegion": { + "description": "Region", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Region ID", + "x-example": "eu-fr" }, - "autoRenewal": { - "type": "boolean", - "description": "If set to true, the domain will automatically renew.", - "x-example": true + "name": { + "type": "string", + "description": "Region name", + "x-example": "EU (Frankfurt)" }, - "renewalPrice": { - "type": "integer", - "description": "Renewal price (in cents).", - "x-example": 2599, - "format": "int32" + "available": { + "type": "boolean", + "description": "Does the organization have access to this region.", + "x-example": false }, - "transferStatus": { - "type": "string", - "description": "Transfer status for domains being transferred in.", - "x-example": "pending_registry", - "enum": [ - "transferrable", - "not_transferrable", - "pending_owner", - "pending_admin", - "pending_registry", - "completed", - "cancelled", - "service_unavailable" - ], - "x-enum-name": "DomainTransferStatusEnum" + "disabled": { + "type": "boolean", + "description": "Does the backend support this region.", + "x-example": false }, - "teamId": { - "type": "string", - "description": "Team ID.", - "x-example": "5e5ea5c16897e" + "default": { + "type": "boolean", + "description": "Is this the region default.", + "x-example": true }, - "dnsRecords": { - "type": "array", - "description": "Dns records", - "items": { - "type": "object", - "$ref": "#\/definitions\/dnsRecord" - }, - "x-example": [] + "flag": { + "type": "string", + "description": "Region flag code.", + "x-example": "fr" } }, "required": [ "$id", - "$createdAt", - "$updatedAt", - "domain", - "registrar", - "nameservers", - "expire", - "renewal", - "autoRenewal", - "renewalPrice", - "transferStatus", - "teamId", - "dnsRecords" + "name", + "available", + "disabled", + "default", + "flag" ], "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "domain": "example.com", - "registrar": "appwrite", - "nameservers": "Appwrite", - "expire": "2020-10-15T06:38:00.000+00:00", - "renewal": "2020-10-15T06:38:00.000+00:00", - "autoRenewal": true, - "renewalPrice": 2599, - "transferStatus": "pending_registry", - "teamId": "5e5ea5c16897e", - "dnsRecords": [] + "$id": "eu-fr", + "name": "EU (Frankfurt)", + "available": false, + "disabled": false, + "default": true, + "flag": "fr" } }, - "domainPurchase": { - "description": "DomainPurchase", + "backupRestoration": { + "description": "Restoration", "type": "object", "properties": { "$id": { "type": "string", - "description": "Purchase\/invoice ID.", + "description": "Restoration ID.", "x-example": "5e5ea5c16897e" }, "$createdAt": { "type": "string", - "description": "Purchase creation time in ISO 8601 format.", + "description": "Restoration creation time in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, "$updatedAt": { "type": "string", - "description": "Purchase update date in ISO 8601 format.", + "description": "Restoration update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "domainId": { + "archiveId": { "type": "string", - "description": "Domain document ID.", - "x-example": "5e5ea5c16897e" + "description": "Backup archive ID.", + "x-example": "did8jx6ws45jana098ab7" }, - "domain": { + "policyId": { "type": "string", - "description": "Domain name.", - "x-example": "example.com" + "description": "Backup policy ID.", + "x-example": "did8jx6ws45jana098ab7" }, - "organizationId": { + "status": { "type": "string", - "description": "Team ID that owns the domain.", - "x-example": "5e5ea5c16897e" + "description": "The status of the restoration. Possible values: pending, downloading, processing, completed, failed.", + "x-example": "completed" }, - "status": { + "startedAt": { "type": "string", - "description": "Domain purchase status.", - "x-example": "pending", - "enum": [ - "pending", - "succeeded", - "failed", - "cancelled" - ], - "x-enum-name": "DomainPurchaseStatus" + "description": "The backup start time.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "clientSecret": { + "migrationId": { "type": "string", - "description": "Stripe client secret for 3DS; empty when not applicable.", - "x-example": "" + "description": "Migration ID.", + "x-example": "did8jx6ws45jana098ab7" }, - "amount": { - "type": "number", - "description": "Purchase amount.", - "x-example": 25.99, - "format": "double" + "services": { + "type": "array", + "description": "The services that are backed up by this policy.", + "items": { + "type": "string" + }, + "x-example": "['databases', 'storage']" }, - "currency": { + "resources": { + "type": "array", + "description": "The resources that are backed up by this policy.", + "items": { + "type": "string" + }, + "x-example": "['databases', 'collections', 'attributes', 'indexes']" + }, + "options": { "type": "string", - "description": "Currency code.", - "x-example": "USD" + "description": "Optional data in key-value object. ", + "x-example": "{databases.database[{oldId, newId, newName}]}" } }, "required": [ "$id", "$createdAt", "$updatedAt", - "domainId", - "domain", - "organizationId", + "archiveId", + "policyId", "status", - "clientSecret", - "amount", - "currency" + "startedAt", + "migrationId", + "services", + "resources", + "options" ], "example": { "$id": "5e5ea5c16897e", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "domainId": "5e5ea5c16897e", - "domain": "example.com", - "organizationId": "5e5ea5c16897e", - "status": "pending", - "clientSecret": "", - "amount": 25.99, - "currency": "USD" + "archiveId": "did8jx6ws45jana098ab7", + "policyId": "did8jx6ws45jana098ab7", + "status": "completed", + "startedAt": "2020-10-15T06:38:00.000+00:00", + "migrationId": "did8jx6ws45jana098ab7", + "services": "['databases', 'storage']", + "resources": "['databases', 'collections', 'attributes', 'indexes']", + "options": "{databases.database[{oldId, newId, newName}]}" } }, - "dnsRecord": { - "description": "DNSRecord", + "dedicatedDatabaseRestorationList": { + "description": "Dedicated database restorations list", "type": "object", "properties": { - "$id": { + "total": { + "type": "integer", + "description": "Total number of restorations that matched your query.", + "x-example": 5, + "format": "int32" + }, + "restorations": { + "type": "array", + "description": "List of restorations.", + "items": { + "type": "object", + "$ref": "#\/definitions\/dedicatedDatabaseRestoration" + }, + "x-example": "" + } + }, + "required": [ + "total", + "restorations" + ], + "example": { + "total": 5, + "restorations": "" + } + }, + "review": { + "description": "Review", + "type": "object", + "properties": { + "name": { "type": "string", - "description": "DNS Record ID.", - "x-example": "5f40a6e10c65e" + "description": "Name of user", + "x-example": "" }, - "$createdAt": { + "image": { "type": "string", - "description": "DNS Record creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Reviewer image", + "x-example": "" }, - "$updatedAt": { + "description": { "type": "string", - "description": "DNS Record update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "description": "Reviewer description", + "x-example": "" }, - "type": { + "review": { "type": "string", - "description": "DNS record type (e.g. A, CNAME, MX).", - "x-example": "A" + "description": "Review", + "x-example": "" + } + }, + "required": [ + "name", + "image", + "description", + "review" + ], + "example": { + "name": "", + "image": "", + "description": "", + "review": "" + } + }, + "roles": { + "description": "Roles", + "type": "object", + "properties": { + "scopes": { + "type": "array", + "description": "Array of scopes accessible to current user.", + "items": { + "type": "string" + }, + "x-example": "users.read" }, - "name": { + "roles": { + "type": "array", + "description": "Array of roles assigned to current user.", + "items": { + "type": "string" + }, + "x-example": "developer" + } + }, + "required": [ + "scopes", + "roles" + ], + "example": { + "scopes": "users.read", + "roles": "developer" + } + }, + "dedicatedDatabaseSchema": { + "description": "Schema", + "type": "object", + "properties": { + "tables": { + "type": "array", + "description": "List of tables with columns, types, and constraints.", + "items": { + "type": "object", + "$ref": "#\/definitions\/any" + }, + "x-example": [] + }, + "indexes": { + "type": "array", + "description": "List of indexes across all tables.", + "items": { + "type": "object", + "$ref": "#\/definitions\/any" + }, + "x-example": [] + } + }, + "required": [ + "tables", + "indexes" + ], + "example": { + "tables": [], + "indexes": [] + } + }, + "dedicatedDatabaseSchemaPreview": { + "description": "SchemaPreview", + "type": "object", + "properties": { + "supportsTransactionalDDL": { + "type": "boolean", + "description": "Whether the engine supports transactional DDL for safe preview.", + "x-example": true + }, + "preview": { "type": "string", - "description": "Record name or subdomain.", - "x-example": "mail" + "description": "Schema change preview output.", + "x-example": "ALTER TABLE users ADD COLUMN age INTEGER" }, - "value": { + "tables": { + "type": "array", + "description": "List of tables in the database after the change.", + "items": { + "type": "string" + }, + "x-example": [ + "users", + "orders" + ] + } + }, + "required": [ + "supportsTransactionalDDL", + "preview", + "tables" + ], + "example": { + "supportsTransactionalDDL": true, + "preview": "ALTER TABLE users ADD COLUMN age INTEGER", + "tables": [ + "users", + "orders" + ] + } + }, + "dedicatedDatabaseSlowQuery": { + "description": "SlowQuery", + "type": "object", + "properties": { + "query": { "type": "string", - "description": "Value of the record (IP address, domain, etc.).", - "x-example": "192.0.2.1" + "description": "The SQL query text.", + "x-example": "SELECT * FROM users WHERE email = $1" }, - "ttl": { - "type": "integer", - "description": "Time to live (in seconds).", - "x-example": 86400, - "format": "int32" + "durationMs": { + "type": "number", + "description": "Query duration in milliseconds.", + "x-example": 523.4, + "format": "double" }, - "priority": { + "calls": { "type": "integer", - "description": "Record priority (commonly used for MX).", - "x-example": 10, + "description": "Number of times this query has been executed.", + "x-example": 42, "format": "int32" }, - "lock": { - "type": "boolean", - "description": "Whether this record is locked (read-only).", - "x-example": false + "user": { + "type": "string", + "description": "Database user that executed the query.", + "x-example": "appwrite" }, - "weight": { + "database": { + "type": "string", + "description": "Database name.", + "x-example": "appwrite" + } + }, + "required": [ + "query", + "durationMs", + "calls", + "user", + "database" + ], + "example": { + "query": "SELECT * FROM users WHERE email = $1", + "durationMs": 523.4, + "calls": 42, + "user": "appwrite", + "database": "appwrite" + } + }, + "databaseStatusConnections": { + "description": "Connections", + "type": "object", + "properties": { + "current": { "type": "integer", - "description": "Record weight (used for SRV records).", - "x-example": 10, + "description": "Current number of active connections.", + "x-example": 12, "format": "int32" }, - "port": { + "max": { "type": "integer", - "description": "Target port (used for SRV records).", - "x-example": 443, + "description": "Maximum allowed connections.", + "x-example": 100, "format": "int32" - }, - "comment": { - "type": "string", - "description": "Comment for the DNS record.", - "x-example": "Mail server record" } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "type", - "name", - "value", - "ttl", - "priority", - "lock", - "weight", - "port", - "comment" + "current", + "max" ], "example": { - "$id": "5f40a6e10c65e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "type": "A", - "name": "mail", - "value": "192.0.2.1", - "ttl": 86400, - "priority": 10, - "lock": false, - "weight": 10, - "port": 443, - "comment": "Mail server record" + "current": 12, + "max": 100 } }, - "usageResources": { - "description": "UsageResource", + "databaseStatusReplica": { + "description": "Replica", "type": "object", "properties": { - "name": { - "type": "string", - "description": "Invoice name", - "x-example": "" - }, - "value": { + "index": { "type": "integer", - "description": "Invoice value", + "description": "StatefulSet pod index (0 = primary, 1+ = replicas).", "x-example": 0, "format": "int32" }, - "amount": { - "type": "number", - "description": "Invoice amount", - "x-example": 500, - "format": "double" + "role": { + "type": "string", + "description": "Replica role: primary or replica.", + "x-example": "primary" }, - "rate": { + "healthy": { + "type": "boolean", + "description": "Whether the replica is healthy.", + "x-example": true + }, + "lagSeconds": { "type": "number", - "description": "Invoice rate", - "x-example": 12.5, - "format": "double" + "description": "Replication lag in seconds (null for primary).", + "x-example": 0.2, + "format": "double", + "x-nullable": true + } + }, + "required": [ + "index", + "role", + "healthy" + ], + "example": { + "index": 0, + "role": "primary", + "healthy": true, + "lagSeconds": 0.2 + } + }, + "databaseStatusVolume": { + "description": "Volume", + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "Mount path of the volume.", + "x-example": "\/var\/lib\/postgresql\/data" }, - "desc": { + "usedPercent": { "type": "string", - "description": "Invoice description", - "x-example": "Your monthly recurring Pro plan." + "description": "Percentage of storage used.", + "x-example": "45%" }, - "resourceId": { + "available": { "type": "string", - "description": "Resource ID", - "x-example": "" + "description": "Available storage space.", + "x-example": "55GB" + }, + "mounted": { + "type": "boolean", + "description": "Whether the volume is mounted.", + "x-example": true } }, "required": [ - "name", - "value", - "amount", - "rate", - "desc", - "resourceId" + "path", + "usedPercent", + "available", + "mounted" ], "example": { - "name": "", - "value": 0, - "amount": 500, - "rate": 12.5, - "desc": "Your monthly recurring Pro plan.", - "resourceId": "" + "path": "\/var\/lib\/postgresql\/data", + "usedPercent": "45%", + "available": "55GB", + "mounted": true } }, "usageBillingPlan": { @@ -99453,908 +102953,992 @@ "credits": null } }, - "estimation": { - "description": "Estimation", + "dedicatedDatabaseUsage": { + "description": "DedicatedDatabase", "type": "object", "properties": { - "amount": { + "$id": { + "type": "string", + "description": "Database ID.", + "x-example": "5e5ea5c16897e" + }, + "range": { + "type": "string", + "description": "The time range of the usage stats.", + "x-example": "30d" + }, + "provisionedCpu": { "type": "number", - "description": "Total amount", - "x-example": 50, + "description": "Provisioned CPU cores for the database specification.", + "x-example": 2, "format": "double" }, - "grossAmount": { + "provisionedMemoryBytes": { + "type": "integer", + "description": "Provisioned memory in bytes for the database specification.", + "x-example": 4294967296, + "format": "int32" + }, + "provisionedStorageBytes": { + "type": "integer", + "description": "Provisioned storage in bytes for the database specification.", + "x-example": 107374182400, + "format": "int32" + }, + "provisionedConnections": { + "type": "integer", + "description": "Maximum concurrent connections allowed by the database specification.", + "x-example": 200, + "format": "int32" + }, + "computeTotal": { + "type": "integer", + "description": "Total aggregated compute time in milliseconds.", + "x-example": 0, + "format": "int32" + }, + "storageTotal": { + "type": "integer", + "description": "Total aggregated storage used in bytes.", + "x-example": 0, + "format": "int32" + }, + "inboundTotal": { + "type": "integer", + "description": "Total aggregated inbound network traffic in bytes.", + "x-example": 0, + "format": "int32" + }, + "outboundTotal": { + "type": "integer", + "description": "Total aggregated outbound network traffic in bytes.", + "x-example": 0, + "format": "int32" + }, + "connectionsTotal": { + "type": "integer", + "description": "Total aggregated number of database connections.", + "x-example": 0, + "format": "int32" + }, + "coldStartsTotal": { + "type": "integer", + "description": "Total aggregated number of cold starts.", + "x-example": 0, + "format": "int32" + }, + "cpuTotal": { "type": "number", - "description": "Gross payable amount", - "x-example": 50, + "description": "Latest CPU usage percent (0-100).", + "x-example": 45.2, "format": "double" }, - "discount": { + "memoryTotal": { "type": "number", - "description": "Discount amount", - "x-example": 50, + "description": "Latest memory usage percent (0-100).", + "x-example": 62.1, "format": "double" }, - "credits": { + "qpsTotal": { "type": "number", - "description": "Credits amount", - "x-example": 50, + "description": "Latest queries per second.", + "x-example": 230.7, "format": "double" }, - "items": { + "iopsReadTotal": { + "type": "number", + "description": "Latest read IOPS.", + "x-example": 125.5, + "format": "double" + }, + "iopsWriteTotal": { + "type": "number", + "description": "Latest write IOPS.", + "x-example": 45.3, + "format": "double" + }, + "compute": { "type": "array", - "description": "Estimation items", + "description": "Aggregated compute time per period in milliseconds.", "items": { "type": "object", - "$ref": "#\/definitions\/estimation_item" + "$ref": "#\/definitions\/metric" }, "x-example": [] }, - "discounts": { + "storage": { "type": "array", - "description": "Estimation discount items", + "description": "Aggregated storage used per period in bytes.", "items": { "type": "object", - "$ref": "#\/definitions\/estimation_item" + "$ref": "#\/definitions\/metric" }, "x-example": [] }, - "trialDays": { - "type": "integer", - "description": "Trial days", - "x-example": 14, - "format": "int32" - }, - "trialEndDate": { - "type": "string", - "description": "Trial end date", - "x-example": "2020-10-15T06:38:00.000+00:00", - "x-nullable": true - } - }, - "required": [ - "amount", - "grossAmount", - "discount", - "credits", - "items", - "discounts", - "trialDays" - ], - "example": { - "amount": 50, - "grossAmount": 50, - "discount": 50, - "credits": 50, - "items": [], - "discounts": [], - "trialDays": 14, - "trialEndDate": "2020-10-15T06:38:00.000+00:00" - } - }, - "estimationUpdatePlan": { - "description": "EstimationUpdatePlan", - "type": "object", - "properties": { - "amount": { - "type": "number", - "description": "Total amount", - "x-example": 50, - "format": "double" + "inbound": { + "type": "array", + "description": "Aggregated inbound network traffic per period in bytes.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] }, - "grossAmount": { - "type": "number", - "description": "Gross payable amount", - "x-example": 50, - "format": "double" + "outbound": { + "type": "array", + "description": "Aggregated outbound network traffic per period in bytes.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] }, - "discount": { - "type": "number", - "description": "Discount amount", - "x-example": 50, - "format": "double" + "connections": { + "type": "array", + "description": "Aggregated number of database connections per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] }, - "credits": { - "type": "number", - "description": "Credits amount", - "x-example": 50, - "format": "double" + "coldStarts": { + "type": "array", + "description": "Aggregated number of cold starts per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] }, - "items": { + "cpu": { "type": "array", - "description": "Estimation items", + "description": "CPU usage percent per period.", "items": { "type": "object", - "$ref": "#\/definitions\/estimation_item" + "$ref": "#\/definitions\/metric" }, "x-example": [] }, - "discounts": { + "memory": { "type": "array", - "description": "Estimation discount items", + "description": "Memory usage percent per period.", "items": { "type": "object", - "$ref": "#\/definitions\/estimation_item" + "$ref": "#\/definitions\/metric" }, "x-example": [] }, - "trialDays": { - "type": "integer", - "description": "Trial days", - "x-example": 14, - "format": "int32" + "qps": { + "type": "array", + "description": "Queries per second per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] }, - "trialEndDate": { - "type": "string", - "description": "Trial end date", - "x-example": "2020-10-15T06:38:00.000+00:00", - "x-nullable": true + "iopsRead": { + "type": "array", + "description": "Read IOPS per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] }, - "organizationCredits": { - "type": "number", - "description": "Organization's existing credits", - "x-example": 0, - "format": "double" + "iopsWrite": { + "type": "array", + "description": "Write IOPS per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] } }, "required": [ - "amount", - "grossAmount", - "discount", - "credits", - "items", - "discounts", - "trialDays", - "organizationCredits" + "$id", + "range", + "provisionedCpu", + "provisionedMemoryBytes", + "provisionedStorageBytes", + "provisionedConnections", + "computeTotal", + "storageTotal", + "inboundTotal", + "outboundTotal", + "connectionsTotal", + "coldStartsTotal", + "cpuTotal", + "memoryTotal", + "qpsTotal", + "iopsReadTotal", + "iopsWriteTotal", + "compute", + "storage", + "inbound", + "outbound", + "connections", + "coldStarts", + "cpu", + "memory", + "qps", + "iopsRead", + "iopsWrite" ], "example": { - "amount": 50, - "grossAmount": 50, - "discount": 50, - "credits": 50, - "items": [], - "discounts": [], - "trialDays": 14, - "trialEndDate": "2020-10-15T06:38:00.000+00:00", - "organizationCredits": 0 + "$id": "5e5ea5c16897e", + "range": "30d", + "provisionedCpu": 2, + "provisionedMemoryBytes": 4294967296, + "provisionedStorageBytes": 107374182400, + "provisionedConnections": 200, + "computeTotal": 0, + "storageTotal": 0, + "inboundTotal": 0, + "outboundTotal": 0, + "connectionsTotal": 0, + "coldStartsTotal": 0, + "cpuTotal": 45.2, + "memoryTotal": 62.1, + "qpsTotal": 230.7, + "iopsReadTotal": 125.5, + "iopsWriteTotal": 45.3, + "compute": [], + "storage": [], + "inbound": [], + "outbound": [], + "connections": [], + "coldStarts": [], + "cpu": [], + "memory": [], + "qps": [], + "iopsRead": [], + "iopsWrite": [] } }, - "estimationPlanChange": { - "description": "EstimationPlanChange", + "usageEvent": { + "description": "usageEvent", "type": "object", "properties": { - "currentBillingPlanId": { + "metric": { "type": "string", - "description": "Current billing plan ID", - "x-example": "tier-2" + "description": "The metric key.", + "x-example": "bandwidth" }, - "targetBillingPlanId": { + "value": { + "type": "integer", + "description": "The metric value.", + "x-example": 5000, + "format": "int32" + }, + "time": { "type": "string", - "description": "Target billing plan ID", - "x-example": "tier-0" + "description": "The event timestamp.", + "x-example": "2026-04-09T12:00:00.000+00:00" }, - "direction": { + "path": { "type": "string", - "description": "Direction of plan change: upgrade, downgrade, or same", - "x-example": "downgrade" + "description": "The API endpoint path.", + "x-example": "\/v1\/storage\/files" }, - "estimation": { - "type": "object", - "description": "Cost estimation details", - "x-example": null, - "items": { - "type": "object", - "$ref": "#\/definitions\/planChangeEstimationDetails" - } + "method": { + "type": "string", + "description": "The HTTP method.", + "x-example": "POST" }, - "limits": { - "type": "object", - "description": "Plan limits and compliance information", - "x-example": null, - "items": { - "type": "object", - "$ref": "#\/definitions\/planChangeLimits" - } + "status": { + "type": "string", + "description": "HTTP status code. Stored as string to preserve unset state (empty string = not available).", + "x-example": "201" + }, + "resourceType": { + "type": "string", + "description": "The resource type.", + "x-example": "bucket" + }, + "resourceId": { + "type": "string", + "description": "The resource ID.", + "x-example": "abc123" + }, + "countryCode": { + "type": "string", + "description": "Country code in [ISO 3166-1](http:\/\/en.wikipedia.org\/wiki\/ISO_3166-1) two-character format.", + "x-example": "US" + }, + "userAgent": { + "type": "string", + "description": "The user agent string.", + "x-example": "AppwriteSDK\/1.0" } }, "required": [ - "currentBillingPlanId", - "targetBillingPlanId", - "direction", - "estimation", - "limits" + "metric", + "value", + "time", + "path", + "method", + "status", + "resourceType", + "resourceId", + "countryCode", + "userAgent" ], "example": { - "currentBillingPlanId": "tier-2", - "targetBillingPlanId": "tier-0", - "direction": "downgrade", - "estimation": null, - "limits": null + "metric": "bandwidth", + "value": 5000, + "time": "2026-04-09T12:00:00.000+00:00", + "path": "\/v1\/storage\/files", + "method": "POST", + "status": "201", + "resourceType": "bucket", + "resourceId": "abc123", + "countryCode": "US", + "userAgent": "AppwriteSDK\/1.0" } }, - "planChangeEstimationDetails": { - "description": "PlanChangeEstimationDetails", + "usageGauge": { + "description": "usageGauge", "type": "object", "properties": { - "currency": { + "metric": { "type": "string", - "description": "Currency code", - "x-example": "USD" - }, - "grossAmount": { - "type": "number", - "description": "Gross amount after all discounts and credits", - "x-example": 15, - "format": "double" - }, - "credits": { - "type": "number", - "description": "Credits applied from coupon", - "x-example": 0, - "format": "double" - }, - "organizationCredits": { - "type": "number", - "description": "Organization's existing credits applied", - "x-example": 5, - "format": "double" - }, - "discount": { - "type": "number", - "description": "Discount amount from prorated invoices", - "x-example": 0, - "format": "double" + "description": "The metric key.", + "x-example": "users" }, - "amount": { - "type": "number", - "description": "Total amount before discounts and credits", - "x-example": 20, - "format": "double" + "value": { + "type": "integer", + "description": "The current snapshot value.", + "x-example": 1500, + "format": "int32" }, - "nextInvoiceDate": { + "time": { "type": "string", - "description": "Next invoice date", - "x-example": "2025-12-01T00:00:00.000Z" - }, - "items": { - "type": "object", - "additionalProperties": true, - "description": "Line items breakdown", - "x-example": [ - { - "label": "Starter plan", - "value": 0 - }, - { - "label": "Additional seats", - "value": 10 - } - ] - }, - "discounts": { - "type": "object", - "additionalProperties": true, - "description": "Applied discounts breakdown", - "x-example": [ - { - "label": "Organization credits", - "value": 5 - } - ] + "description": "The snapshot timestamp.", + "x-example": "2026-04-09T12:00:00.000+00:00" } }, "required": [ - "currency", - "grossAmount", - "credits", - "organizationCredits", - "discount", - "amount", - "nextInvoiceDate", - "items", - "discounts" + "metric", + "value", + "time" ], "example": { - "currency": "USD", - "grossAmount": 15, - "credits": 0, - "organizationCredits": 5, - "discount": 0, - "amount": 20, - "nextInvoiceDate": "2025-12-01T00:00:00.000Z", - "items": [ - { - "label": "Starter plan", - "value": 0 - }, - { - "label": "Additional seats", - "value": 10 - } - ], - "discounts": [ - { - "label": "Organization credits", - "value": 5 - } - ] + "metric": "users", + "value": 1500, + "time": "2026-04-09T12:00:00.000+00:00" } }, - "planChangeLimits": { - "description": "PlanChangeLimits", + "usageOrganization": { + "description": "Organization", "type": "object", "properties": { - "totalProjects": { + "bandwidth": { + "type": "array", + "description": "Aggregated stats for number of requests.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "users": { + "type": "array", + "description": "Aggregated stats for consumed bandwidth.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "executions": { + "type": "array", + "description": "Aggregated stats for function executions.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "databasesReads": { + "type": "array", + "description": "Aggregated stats for database reads.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "databasesWrites": { + "type": "array", + "description": "Aggregated stats for database writes.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "imageTransformations": { + "type": "array", + "description": "Aggregated stats for file transformations.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "imageTransformationsTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "x-example": 0, + "format": "int32" + }, + "screenshotsGenerated": { + "type": "array", + "description": "Aggregated stats for file transformations.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "screenshotsGeneratedTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "x-example": 0, + "format": "int32" + }, + "imagineCredits": { + "type": "array", + "description": "Aggregated stats for imagine credits.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "imagineCreditsTotal": { + "type": "integer", + "description": "Aggregated stats for total imagine credits.", + "x-example": 0, + "format": "int32" + }, + "usersTotal": { + "type": "integer", + "description": "Aggregated stats for total users.", + "x-example": 0, + "format": "int32" + }, + "executionsTotal": { + "type": "integer", + "description": "Aggregated stats for total executions.", + "x-example": 0, + "format": "int32" + }, + "executionsMBSecondsTotal": { + "type": "integer", + "description": "Aggregated stats for function executions in mb seconds.", + "x-example": 0, + "format": "int32" + }, + "buildsMBSecondsTotal": { + "type": "integer", + "description": "Aggregated stats for function builds in mb seconds.", + "x-example": 0, + "format": "int32" + }, + "filesStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total file storage.", + "x-example": 0, + "format": "int32" + }, + "buildsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total builds storage.", + "x-example": 0, + "format": "int32" + }, + "deploymentsStorageTotal": { "type": "integer", - "description": "Total number of projects in the organization", - "x-example": 5, + "description": "Aggregated stats for total deployments storage.", + "x-example": 0, "format": "int32" }, - "nonCompliantProjects": { + "databasesStorageTotal": { "type": "integer", - "description": "Number of projects exceeding target plan limits", - "x-example": 2, + "description": "Aggregated stats for total databases storage.", + "x-example": 0, "format": "int32" }, - "canChangePlan": { - "type": "boolean", - "description": "Whether the plan change is allowed", - "x-example": false + "databasesReadsTotal": { + "type": "integer", + "description": "Aggregated stats for total databases reads.", + "x-example": 0, + "format": "int32" + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Aggregated stats for total databases writes.", + "x-example": 0, + "format": "int32" + }, + "backupsStorageTotal": { + "type": "integer", + "description": "Aggregated stats for total backups storage.", + "x-example": 0, + "format": "int32" + }, + "storageTotal": { + "type": "integer", + "description": "Aggregated stats for total storage.", + "x-example": 0, + "format": "int32" + }, + "authPhoneTotal": { + "type": "integer", + "description": "Aggregated stats for total auth phone.", + "x-example": 0, + "format": "int32" + }, + "authPhoneEstimate": { + "type": "integer", + "description": "Aggregated stats for total auth phone estimation.", + "x-example": 0, + "format": "int32" }, "projects": { "type": "array", - "description": "Project compliance details", + "description": "Aggregated stats for each projects.", "items": { "type": "object", - "$ref": "#\/definitions\/planChangeProjectCompliance" + "$ref": "#\/definitions\/usageOrganizationProject" }, "x-example": [] }, - "unsupportedAddons": { + "realtimeConnections": { "type": "array", - "description": "Active addon keys that the target plan does not support. When non-empty, `canChangePlan` is false.", + "description": "Aggregated stats for realtime connections.", "items": { - "type": "string" + "type": "object", + "$ref": "#\/definitions\/metric" }, - "x-example": [ - "baa" - ] - } - }, - "required": [ - "totalProjects", - "nonCompliantProjects", - "canChangePlan", - "projects", - "unsupportedAddons" - ], - "example": { - "totalProjects": 5, - "nonCompliantProjects": 2, - "canChangePlan": false, - "projects": [], - "unsupportedAddons": [ - "baa" - ] - } - }, - "planChangeProjectCompliance": { - "description": "PlanChangeProjectCompliance", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Project ID", - "x-example": "proj_a" - }, - "name": { - "type": "string", - "description": "Project name", - "x-example": "Marketing Site" + "x-example": [] }, - "isCompliant": { - "type": "boolean", - "description": "Whether the project complies with target plan limits", - "x-example": false + "realtimeConnectionsTotal": { + "type": "integer", + "description": "Aggregated stats for total realtime connections.", + "x-example": 0, + "format": "int32" }, - "resources": { + "realtimeMessages": { "type": "array", - "description": "Resource compliance details", + "description": "Aggregated stats for realtime messages.", "items": { "type": "object", - "$ref": "#\/definitions\/planChangeResourceCompliance" + "$ref": "#\/definitions\/metric" }, "x-example": [] }, - "error": { - "type": "string", - "description": "Failure reason when compliance could not be evaluated. Present only when the project DB or Regions API was unreachable; in that case `isCompliant` is false (fail closed) and `resources` is empty.", - "x-example": "Failed to get project compliance from Regions API. Status: 500", - "x-nullable": true - } - }, - "required": [ - "$id", - "name", - "isCompliant", - "resources" - ], - "example": { - "$id": "proj_a", - "name": "Marketing Site", - "isCompliant": false, - "resources": [], - "error": "Failed to get project compliance from Regions API. Status: 500" - } - }, - "planChangeResourceCompliance": { - "description": "PlanChangeResourceCompliance", - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Resource type", - "x-example": "databases" - }, - "currentUsage": { - "type": "integer", - "description": "Current usage count", - "x-example": 3, - "format": "int32" - }, - "limit": { + "realtimeMessagesTotal": { "type": "integer", - "description": "Allowed limit in target plan", - "x-example": 1, + "description": "Aggregated stats for total realtime messages.", + "x-example": 0, "format": "int32" }, - "status": { - "type": "string", - "description": "Compliance status", - "x-example": "over_limit" + "realtimeBandwidth": { + "type": "array", + "description": "Aggregated stats for realtime bandwidth.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] }, - "excess": { + "realtimeBandwidthTotal": { "type": "integer", - "description": "Number of resources exceeding the limit", - "x-example": 2, + "description": "Aggregated stats for total realtime bandwidth.", + "x-example": 0, "format": "int32" - }, - "resolutionHint": { - "type": "string", - "description": "Suggestion for resolving the compliance issue", - "x-example": "Delete or migrate 2 databases." } }, "required": [ - "type", - "currentUsage", - "limit", - "status", - "excess", - "resolutionHint" + "bandwidth", + "users", + "executions", + "databasesReads", + "databasesWrites", + "imageTransformations", + "imageTransformationsTotal", + "screenshotsGenerated", + "screenshotsGeneratedTotal", + "imagineCredits", + "imagineCreditsTotal", + "usersTotal", + "executionsTotal", + "executionsMBSecondsTotal", + "buildsMBSecondsTotal", + "filesStorageTotal", + "buildsStorageTotal", + "deploymentsStorageTotal", + "databasesStorageTotal", + "databasesReadsTotal", + "databasesWritesTotal", + "backupsStorageTotal", + "storageTotal", + "authPhoneTotal", + "authPhoneEstimate", + "projects", + "realtimeConnections", + "realtimeConnectionsTotal", + "realtimeMessages", + "realtimeMessagesTotal", + "realtimeBandwidth", + "realtimeBandwidthTotal" ], "example": { - "type": "databases", - "currentUsage": 3, - "limit": 1, - "status": "over_limit", - "excess": 2, - "resolutionHint": "Delete or migrate 2 databases." + "bandwidth": [], + "users": [], + "executions": [], + "databasesReads": [], + "databasesWrites": [], + "imageTransformations": [], + "imageTransformationsTotal": 0, + "screenshotsGenerated": [], + "screenshotsGeneratedTotal": 0, + "imagineCredits": [], + "imagineCreditsTotal": 0, + "usersTotal": 0, + "executionsTotal": 0, + "executionsMBSecondsTotal": 0, + "buildsMBSecondsTotal": 0, + "filesStorageTotal": 0, + "buildsStorageTotal": 0, + "deploymentsStorageTotal": 0, + "databasesStorageTotal": 0, + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "backupsStorageTotal": 0, + "storageTotal": 0, + "authPhoneTotal": 0, + "authPhoneEstimate": 0, + "projects": [], + "realtimeConnections": [], + "realtimeConnectionsTotal": 0, + "realtimeMessages": [], + "realtimeMessagesTotal": 0, + "realtimeBandwidth": [], + "realtimeBandwidthTotal": 0 } }, - "estimationDeleteOrganization": { - "description": "EstimationDeleteOrganization", + "usageOrganizationProject": { + "description": "OrganizationProject", "type": "object", "properties": { - "unpaidInvoices": { + "projectId": { + "type": "string", + "description": "projectId", + "x-example": "5e5ea5c16897e" + }, + "bandwidth": { "type": "array", - "description": "List of unpaid invoices", + "description": "Aggregated stats for number of requests.", "items": { "type": "object", - "$ref": "#\/definitions\/invoice" + "$ref": "#\/definitions\/metric" }, "x-example": [] - } - }, - "required": [ - "unpaidInvoices" - ], - "example": { - "unpaidInvoices": [] - } - }, - "estimation_item": { - "description": "EstimationItem", - "type": "object", - "properties": { - "label": { - "type": "string", - "description": "Label", - "x-example": "Plan name" }, - "value": { - "type": "number", - "description": "Gross payable amount", - "x-example": 50, - "format": "double" - } - }, - "required": [ - "label", - "value" - ], - "example": { - "label": "Plan name", - "value": 50 - } - }, - "domainPrice": { - "description": "DomainPrice", - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "x-example": "example.com" + "users": { + "type": "array", + "description": "Aggregated stats for consumed bandwidth.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] }, - "tld": { - "type": "string", - "description": "Top-level domain for the requested domain.", - "x-example": "com" + "executions": { + "type": "integer", + "description": "Aggregated stats for function executions.", + "x-example": [], + "format": "int32" }, - "available": { - "type": "boolean", - "description": "Whether the domain is currently available for registration.", - "x-example": true + "databasesReads": { + "type": "array", + "description": "Aggregated stats for database reads.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] }, - "price": { - "type": "number", - "description": "Domain registration price.", - "x-example": 25.99, - "format": "double" + "databasesWrites": { + "type": "array", + "description": "Aggregated stats for database writes.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] }, - "periodYears": { + "executionsMBSeconds": { "type": "integer", - "description": "Price period in years.", - "x-example": 1, + "description": "Aggregated stats for function executions in mb seconds.", + "x-example": 0, "format": "int32" }, - "premium": { - "type": "boolean", - "description": "Whether the domain is a premium domain.", - "x-example": false - } - }, - "required": [ - "domain", - "tld", - "available", - "price", - "periodYears", - "premium" - ], - "example": { - "domain": "example.com", - "tld": "com", - "available": true, - "price": 25.99, - "periodYears": 1, - "premium": false - } - }, - "domainSuggestion": { - "description": "DomainSuggestion", - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain suggestion.", - "x-example": "example.com" + "buildsMBSeconds": { + "type": "integer", + "description": "Aggregated stats for function builds in mb seconds.", + "x-example": 0, + "format": "int32" }, - "premium": { - "type": "boolean", - "description": "Is the domain premium?", - "x-example": true + "storage": { + "type": "integer", + "description": "Aggregated stats for number of documents.", + "x-example": [], + "format": "int32" }, - "price": { - "type": "number", - "description": "Domain price.", - "x-example": 25.99, - "format": "double", - "x-nullable": true + "authPhoneTotal": { + "type": "integer", + "description": "Aggregated stats for phone authentication.", + "x-example": [], + "format": "int32" }, - "available": { - "type": "boolean", - "description": "Is the domain available?", - "x-example": true - } - }, - "required": [ - "domain", - "premium", - "available" - ], - "example": { - "domain": "example.com", - "premium": true, - "price": 25.99, - "available": true - } - }, - "addon": { - "description": "Addon", - "type": "object", - "properties": { - "$id": { - "type": "string", - "description": "Addon ID.", - "x-example": "5e5ea5c16897e" + "authPhoneEstimate": { + "type": "number", + "description": "Aggregated stats for phone authentication estimated cost.", + "x-example": [], + "format": "double" }, - "$createdAt": { - "type": "string", - "description": "Addon creation time in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "databasesReadsTotal": { + "type": "integer", + "description": "Aggregated stats for total databases reads.", + "x-example": 0, + "format": "int32" }, - "$updatedAt": { - "type": "string", - "description": "Addon update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "databasesWritesTotal": { + "type": "integer", + "description": "Aggregated stats for total databases writes.", + "x-example": 0, + "format": "int32" }, - "$permissions": { + "imageTransformations": { "type": "array", - "description": "Addon permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Aggregated stats for file transformations.", "items": { - "type": "string" + "type": "object", + "$ref": "#\/definitions\/metric" }, - "x-example": [ - "read(\"any\")" - ] + "x-example": [] }, - "key": { - "type": "string", - "description": "Addon key", - "x-example": "baa" + "imageTransformationsTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "x-example": 0, + "format": "int32" }, - "resourceType": { - "type": "string", - "description": "Resource type (organization or project)", - "x-example": "organization" + "screenshotsGenerated": { + "type": "array", + "description": "Aggregated stats for file transformations.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] }, - "resourceId": { - "type": "string", - "description": "Resource ID", - "x-example": "5e5ea5c16897e" + "screenshotsGeneratedTotal": { + "type": "integer", + "description": "Aggregated stats for total file transformations.", + "x-example": 0, + "format": "int32" }, - "status": { - "type": "string", - "description": "Payment status. Possible values: pending (awaiting payment confirmation e.g. 3DS), active (payment confirmed and addon is running).", - "x-example": "active" + "imagineCredits": { + "type": "integer", + "description": "Aggregated stats for imagine credits.", + "x-example": 0, + "format": "int32" + }, + "realtimeConnections": { + "type": "integer", + "description": "Aggregated stats for realtime connections.", + "x-example": 0, + "format": "int32" }, - "currentValue": { + "realtimeMessages": { "type": "integer", - "description": "Current value for this billing cycle. For toggle addons: 1 (on) or 0 (off). For numeric addons: the active quantity.", - "x-example": 1, + "description": "Aggregated stats for realtime messages.", + "x-example": 0, "format": "int32" }, - "nextValue": { + "realtimeBandwidth": { "type": "integer", - "description": "Value to apply at the start of the next billing cycle. Null means no change is scheduled. For toggle addons, 0 means the addon will be removed at the next cycle.", - "x-example": null, - "format": "int32", - "x-nullable": true + "description": "Aggregated stats for realtime bandwidth.", + "x-example": 0, + "format": "int32" } }, "required": [ - "$id", - "$createdAt", - "$updatedAt", - "$permissions", - "key", - "resourceType", - "resourceId", - "status", - "currentValue" + "projectId", + "bandwidth", + "users", + "executions", + "databasesReads", + "databasesWrites", + "executionsMBSeconds", + "buildsMBSeconds", + "storage", + "authPhoneTotal", + "authPhoneEstimate", + "databasesReadsTotal", + "databasesWritesTotal", + "imageTransformations", + "imageTransformationsTotal", + "screenshotsGenerated", + "screenshotsGeneratedTotal", + "imagineCredits", + "realtimeConnections", + "realtimeMessages", + "realtimeBandwidth" ], "example": { - "$id": "5e5ea5c16897e", - "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "$permissions": [ - "read(\"any\")" - ], - "key": "baa", - "resourceType": "organization", - "resourceId": "5e5ea5c16897e", - "status": "active", - "currentValue": 1, - "nextValue": null + "projectId": "5e5ea5c16897e", + "bandwidth": [], + "users": [], + "executions": [], + "databasesReads": [], + "databasesWrites": [], + "executionsMBSeconds": 0, + "buildsMBSeconds": 0, + "storage": [], + "authPhoneTotal": [], + "authPhoneEstimate": [], + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "imageTransformations": [], + "imageTransformationsTotal": 0, + "screenshotsGenerated": [], + "screenshotsGeneratedTotal": 0, + "imagineCredits": 0, + "realtimeConnections": 0, + "realtimeMessages": 0, + "realtimeBandwidth": 0 } }, - "addonPrice": { - "description": "AddonPrice", + "usageResources": { + "description": "Resource", "type": "object", "properties": { - "addonKey": { - "type": "string", - "description": "Addon key.", - "x-example": "baa" - }, "name": { "type": "string", - "description": "Addon display name.", - "x-example": "HIPAA BAA" + "description": "Invoice name", + "x-example": "" }, - "monthlyPrice": { + "value": { + "type": "integer", + "description": "Invoice value", + "x-example": 0, + "format": "int32" + }, + "amount": { "type": "number", - "description": "Full monthly price of the addon.", - "x-example": 350, + "description": "Invoice amount", + "x-example": 500, "format": "double" }, - "proratedAmount": { + "rate": { "type": "number", - "description": "Calculated prorated amount for the current billing cycle.", - "x-example": 175.5, + "description": "Invoice rate", + "x-example": 12.5, "format": "double" }, - "remainingDays": { - "type": "integer", - "description": "Days remaining in the current billing cycle.", - "x-example": 15, - "format": "int32" - }, - "totalCycleDays": { - "type": "integer", - "description": "Total days in the billing cycle.", - "x-example": 30, - "format": "int32" - }, - "currency": { + "desc": { "type": "string", - "description": "Currency code.", - "x-example": "USD" + "description": "Invoice description", + "x-example": "Your monthly recurring Pro plan." }, - "billingCycleEnd": { + "resourceId": { "type": "string", - "description": "When the current billing cycle ends.", - "x-example": "2024-02-01T00:00:00.000+00:00" + "description": "Resource ID", + "x-example": "" } }, "required": [ - "addonKey", "name", - "monthlyPrice", - "proratedAmount", - "remainingDays", - "totalCycleDays", - "currency", - "billingCycleEnd" - ], - "example": { - "addonKey": "baa", - "name": "HIPAA BAA", - "monthlyPrice": 350, - "proratedAmount": 175.5, - "remainingDays": 15, - "totalCycleDays": 30, - "currency": "USD", - "billingCycleEnd": "2024-02-01T00:00:00.000+00:00" - } - }, - "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" - ], - "x-enum-name": "DomainTransferStatusEnum" - }, - "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" + "value", + "amount", + "rate", + "desc", + "resourceId" ], "example": { - "status": "pending_registry", - "reason": "Transfer in progress", - "timestamp": "2020-10-15T06:38:00.000+00:00" + "name": "", + "value": 0, + "amount": 500, + "rate": 12.5, + "desc": "Your monthly recurring Pro plan.", + "resourceId": "" } }, - "addonList": { - "description": "Addons list", + "activityEventList": { + "description": "Activity event list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of addons that matched your query.", + "description": "Total number of events that matched your query.", "x-example": 5, "format": "int32" }, - "addons": { + "events": { "type": "array", - "description": "List of addons.", + "description": "List of events.", "items": { "type": "object", - "$ref": "#\/definitions\/addon" + "$ref": "#\/definitions\/activityEvent" }, "x-example": "" } }, "required": [ "total", - "addons" + "events" ], "example": { "total": 5, - "addons": "" + "events": "" } }, - "activityEventList": { - "description": "Activity event list", + "addonList": { + "description": "Addons list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of events that matched your query.", + "description": "Total number of addons that matched your query.", "x-example": 5, "format": "int32" }, - "events": { + "addons": { "type": "array", - "description": "List of events.", + "description": "List of addons.", "items": { "type": "object", - "$ref": "#\/definitions\/activityEvent" + "$ref": "#\/definitions\/addon" }, "x-example": "" } }, "required": [ "total", - "events" + "addons" ], "example": { "total": 5, - "events": "" + "addons": "" } }, "aggregationTeamList": { @@ -100473,62 +104057,62 @@ "restorations": "" } }, - "invoiceList": { - "description": "Billing invoices list", + "billingAddressList": { + "description": "Billing address list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of invoices that matched your query.", + "description": "Total number of billingAddresses that matched your query.", "x-example": 5, "format": "int32" }, - "invoices": { + "billingAddresses": { "type": "array", - "description": "List of invoices.", + "description": "List of billingAddresses.", "items": { "type": "object", - "$ref": "#\/definitions\/invoice" + "$ref": "#\/definitions\/billingAddress" }, "x-example": "" } }, "required": [ "total", - "invoices" + "billingAddresses" ], "example": { "total": 5, - "invoices": "" + "billingAddresses": "" } }, - "billingAddressList": { - "description": "Billing address list", + "invoiceList": { + "description": "Billing invoices list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of billingAddresses that matched your query.", + "description": "Total number of invoices that matched your query.", "x-example": 5, "format": "int32" }, - "billingAddresses": { + "invoices": { "type": "array", - "description": "List of billingAddresses.", + "description": "List of invoices.", "items": { "type": "object", - "$ref": "#\/definitions\/billingAddress" + "$ref": "#\/definitions\/invoice" }, "x-example": "" } }, "required": [ "total", - "billingAddresses" + "invoices" ], "example": { "total": 5, - "billingAddresses": "" + "invoices": "" } }, "billingPlanList": { @@ -100560,149 +104144,149 @@ "plans": "" } }, - "organizationList": { - "description": "Organizations list", + "blockList": { + "description": "Blocks list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of teams that matched your query.", + "description": "Total number of blocks that matched your query.", "x-example": 5, "format": "int32" }, - "teams": { + "blocks": { "type": "array", - "description": "List of teams.", + "description": "List of blocks.", "items": { "type": "object", - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/block" }, "x-example": "" } }, "required": [ "total", - "teams" + "blocks" ], "example": { "total": 5, - "teams": "" + "blocks": "" } }, - "paymentMethodList": { - "description": "Payment methods list", + "dedicatedDatabaseAuditLogList": { + "description": "Dedicated database audit logs list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of paymentMethods that matched your query.", + "description": "Total number of auditLogs that matched your query.", "x-example": 5, "format": "int32" }, - "paymentMethods": { + "auditLogs": { "type": "array", - "description": "List of paymentMethods.", + "description": "List of auditLogs.", "items": { "type": "object", - "$ref": "#\/definitions\/paymentMethod" + "$ref": "#\/definitions\/dedicatedDatabaseAuditLog" }, "x-example": "" } }, "required": [ "total", - "paymentMethods" + "auditLogs" ], "example": { "total": 5, - "paymentMethods": "" + "auditLogs": "" } }, - "blockList": { - "description": "Blocks list", + "dedicatedDatabaseConnectionList": { + "description": "Dedicated database connections list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of blocks that matched your query.", + "description": "Total number of connections that matched your query.", "x-example": 5, "format": "int32" }, - "blocks": { + "connections": { "type": "array", - "description": "List of blocks.", + "description": "List of connections.", "items": { "type": "object", - "$ref": "#\/definitions\/block" + "$ref": "#\/definitions\/dedicatedDatabaseConnection" }, "x-example": "" } }, "required": [ "total", - "blocks" + "connections" ], "example": { "total": 5, - "blocks": "" + "connections": "" } }, - "consoleRegionList": { - "description": "Regions list", + "dedicatedDatabaseSlowQueryList": { + "description": "Dedicated database slow queries list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of regions that matched your query.", + "description": "Total number of slowQueries that matched your query.", "x-example": 5, "format": "int32" }, - "regions": { + "slowQueries": { "type": "array", - "description": "List of regions.", + "description": "List of slowQueries.", "items": { "type": "object", - "$ref": "#\/definitions\/consoleRegion" + "$ref": "#\/definitions\/dedicatedDatabaseSlowQuery" }, "x-example": "" } }, "required": [ "total", - "regions" + "slowQueries" ], "example": { "total": 5, - "regions": "" + "slowQueries": "" } }, - "domainsList": { - "description": "Domains list", + "dedicatedDatabaseList": { + "description": "Dedicated databases list", "type": "object", "properties": { "total": { "type": "integer", - "description": "Total number of domains that matched your query.", + "description": "Total number of databases that matched your query.", "x-example": 5, "format": "int32" }, - "domains": { + "databases": { "type": "array", - "description": "List of domains.", + "description": "List of databases.", "items": { "type": "object", - "$ref": "#\/definitions\/domain" + "$ref": "#\/definitions\/dedicatedDatabase" }, "x-example": "" } }, "required": [ "total", - "domains" + "databases" ], "example": { "total": 5, - "domains": "" + "databases": "" } }, "dnsRecordsList": { @@ -100762,6 +104346,180 @@ "total": 5, "suggestions": "" } + }, + "domainsList": { + "description": "Domains list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of domains that matched your query.", + "x-example": 5, + "format": "int32" + }, + "domains": { + "type": "array", + "description": "List of domains.", + "items": { + "type": "object", + "$ref": "#\/definitions\/domain" + }, + "x-example": "" + } + }, + "required": [ + "total", + "domains" + ], + "example": { + "total": 5, + "domains": "" + } + }, + "organizationList": { + "description": "Organizations list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of teams that matched your query.", + "x-example": 5, + "format": "int32" + }, + "teams": { + "type": "array", + "description": "List of teams.", + "items": { + "type": "object", + "$ref": "#\/definitions\/organization" + }, + "x-example": "" + } + }, + "required": [ + "total", + "teams" + ], + "example": { + "total": 5, + "teams": "" + } + }, + "paymentMethodList": { + "description": "Payment methods list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of paymentMethods that matched your query.", + "x-example": 5, + "format": "int32" + }, + "paymentMethods": { + "type": "array", + "description": "List of paymentMethods.", + "items": { + "type": "object", + "$ref": "#\/definitions\/paymentMethod" + }, + "x-example": "" + } + }, + "required": [ + "total", + "paymentMethods" + ], + "example": { + "total": 5, + "paymentMethods": "" + } + }, + "consoleRegionList": { + "description": "Regions list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of regions that matched your query.", + "x-example": 5, + "format": "int32" + }, + "regions": { + "type": "array", + "description": "List of regions.", + "items": { + "type": "object", + "$ref": "#\/definitions\/consoleRegion" + }, + "x-example": "" + } + }, + "required": [ + "total", + "regions" + ], + "example": { + "total": 5, + "regions": "" + } + }, + "usageEventList": { + "description": "Usage events list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of events that matched your query.", + "x-example": 5, + "format": "int32" + }, + "events": { + "type": "array", + "description": "List of events.", + "items": { + "type": "object", + "$ref": "#\/definitions\/usageEvent" + }, + "x-example": "" + } + }, + "required": [ + "total", + "events" + ], + "example": { + "total": 5, + "events": "" + } + }, + "usageGaugeList": { + "description": "Usage gauges list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of gauges that matched your query.", + "x-example": 5, + "format": "int32" + }, + "gauges": { + "type": "array", + "description": "List of gauges.", + "items": { + "type": "object", + "$ref": "#\/definitions\/usageGauge" + }, + "x-example": "" + } + }, + "required": [ + "total", + "gauges" + ], + "example": { + "total": 5, + "gauges": "" + } } }, "externalDocs": { diff --git a/specs/latest/swagger2-latest-server.json b/specs/latest/swagger2-latest-server.json index af12939a4..a7ec945ed 100644 --- a/specs/latest/swagger2-latest-server.json +++ b/specs/latest/swagger2-latest-server.json @@ -133,7 +133,6 @@ "x-appwrite": { "method": "get", "group": "account", - "weight": 9, "cookies": false, "type": "", "demo": "account\/get.md", @@ -187,7 +186,6 @@ "x-appwrite": { "method": "create", "group": "account", - "weight": 8, "cookies": false, "type": "", "demo": "account\/create.md", @@ -225,20 +223,17 @@ "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": "New user password. Must be between 8 and 256 chars.", - "default": null, "x-example": null }, "name": { @@ -284,7 +279,6 @@ "x-appwrite": { "method": "updateEmail", "group": "account", - "weight": 34, "cookies": false, "type": "", "demo": "account\/update-email.md", @@ -322,14 +316,12 @@ "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, "password": { "type": "string", "description": "User password. Must be at least 8 chars.", - "default": null, "x-example": "password", "format": "password" } @@ -367,7 +359,6 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 47, "cookies": false, "type": "", "demo": "account\/list-identities.md", @@ -441,7 +432,6 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 48, "cookies": false, "type": "", "demo": "account\/delete-identity.md", @@ -507,7 +497,6 @@ "x-appwrite": { "method": "createJWT", "group": "tokens", - "weight": 29, "cookies": false, "type": "", "demo": "account\/create-jwt.md", @@ -579,7 +568,6 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 31, "cookies": false, "type": "", "demo": "account\/list-logs.md", @@ -658,7 +646,6 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 165, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -696,7 +683,6 @@ "mfa": { "type": "boolean", "description": "Enable or disable MFA.", - "default": null, "x-example": false } }, @@ -734,7 +720,6 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 167, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -831,7 +816,6 @@ "totp" ], "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], "in": "path" } ] @@ -861,7 +845,6 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 168, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -962,7 +945,6 @@ "totp" ], "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], "in": "path" }, { @@ -974,7 +956,6 @@ "otp": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<OTP>" } }, @@ -1005,7 +986,6 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 169, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -1100,7 +1080,6 @@ "totp" ], "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], "in": "path" } ] @@ -1132,7 +1111,6 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 173, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -1228,7 +1206,6 @@ "factor": { "type": "string", "description": "Factor used for verification. Must be one of following: `email`, `phone`, `totp`, `recoveryCode`.", - "default": null, "x-example": "email", "enum": [ "email", @@ -1236,8 +1213,7 @@ "totp", "recoverycode" ], - "x-enum-name": "AuthenticationFactor", - "x-enum-keys": [] + "x-enum-name": "AuthenticationFactor" } }, "required": [ @@ -1272,7 +1248,6 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 174, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -1372,13 +1347,11 @@ "challengeId": { "type": "string", "description": "ID of the challenge.", - "default": null, "x-example": "<CHALLENGE_ID>" }, "otp": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<OTP>" } }, @@ -1415,7 +1388,6 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 166, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -1519,7 +1491,6 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 172, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -1623,7 +1594,6 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 170, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -1727,7 +1697,6 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 171, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -1833,7 +1802,6 @@ "x-appwrite": { "method": "updateName", "group": "account", - "weight": 32, "cookies": false, "type": "", "demo": "account\/update-name.md", @@ -1871,7 +1839,6 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" } }, @@ -1909,7 +1876,6 @@ "x-appwrite": { "method": "updatePassword", "group": "account", - "weight": 33, "cookies": false, "type": "", "demo": "account\/update-password.md", @@ -1947,7 +1913,6 @@ "password": { "type": "string", "description": "New user password. Must be at least 8 chars.", - "default": null, "x-example": null }, "oldPassword": { @@ -1992,7 +1957,6 @@ "x-appwrite": { "method": "updatePhone", "group": "account", - "weight": 35, "cookies": false, "type": "", "demo": "account\/update-phone.md", @@ -2030,14 +1994,12 @@ "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" }, "password": { "type": "string", "description": "User password. Must be at least 8 chars.", - "default": null, "x-example": "password", "format": "password" } @@ -2075,7 +2037,6 @@ "x-appwrite": { "method": "getPrefs", "group": "account", - "weight": 30, "cookies": false, "type": "", "demo": "account\/get-prefs.md", @@ -2129,7 +2090,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "account", - "weight": 36, "cookies": false, "type": "", "demo": "account\/update-prefs.md", @@ -2205,7 +2165,6 @@ "x-appwrite": { "method": "createRecovery", "group": "recovery", - "weight": 38, "cookies": false, "type": "", "demo": "account\/create-recovery.md", @@ -2246,14 +2205,12 @@ "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, "url": { "type": "string", "description": "URL to redirect the user back to your app from the recovery email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "default": null, "x-example": "https:\/\/example.com", "format": "url" } @@ -2291,7 +2248,6 @@ "x-appwrite": { "method": "updateRecovery", "group": "recovery", - "weight": 39, "cookies": false, "type": "", "demo": "account\/update-recovery.md", @@ -2329,19 +2285,16 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "secret": { "type": "string", "description": "Valid reset token.", - "default": null, "x-example": "<SECRET>" }, "password": { "type": "string", "description": "New user password. Must be between 8 and 256 chars.", - "default": null, "x-example": null } }, @@ -2379,7 +2332,6 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 11, "cookies": false, "type": "", "demo": "account\/list-sessions.md", @@ -2428,7 +2380,6 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 12, "cookies": false, "type": "", "demo": "account\/delete-sessions.md", @@ -2484,7 +2435,6 @@ "x-appwrite": { "method": "createAnonymousSession", "group": "sessions", - "weight": 17, "cookies": false, "type": "", "demo": "account\/create-anonymous-session.md", @@ -2540,7 +2490,6 @@ "x-appwrite": { "method": "createEmailPasswordSession", "group": "sessions", - "weight": 16, "cookies": false, "type": "", "demo": "account\/create-email-password-session.md", @@ -2578,14 +2527,12 @@ "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, "password": { "type": "string", "description": "User password. Must be at least 8 chars.", - "default": null, "x-example": "password", "format": "password" } @@ -2625,7 +2572,6 @@ "x-appwrite": { "method": "updateMagicURLSession", "group": "sessions", - "weight": 26, "cookies": false, "type": "", "demo": "account\/update-magic-url-session.md", @@ -2667,13 +2613,11 @@ "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>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -2712,7 +2656,6 @@ "x-appwrite": { "method": "updatePhoneSession", "group": "sessions", - "weight": 27, "cookies": false, "type": "", "demo": "account\/update-phone-session.md", @@ -2754,13 +2697,11 @@ "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>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -2799,7 +2740,6 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 18, "cookies": false, "type": "", "demo": "account\/create-session.md", @@ -2837,13 +2777,11 @@ "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>" }, "secret": { "type": "string", "description": "Secret of a token generated by login methods. For example, the `createMagicURLToken` or `createPhoneToken` methods.", - "default": null, "x-example": "<SECRET>" } }, @@ -2880,7 +2818,6 @@ "x-appwrite": { "method": "getSession", "group": "sessions", - "weight": 13, "cookies": false, "type": "", "demo": "account\/get-session.md", @@ -2944,7 +2881,6 @@ "x-appwrite": { "method": "updateSession", "group": "sessions", - "weight": 15, "cookies": false, "type": "", "demo": "account\/update-session.md", @@ -3003,7 +2939,6 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 14, "cookies": false, "type": "", "demo": "account\/delete-session.md", @@ -3069,7 +3004,6 @@ "x-appwrite": { "method": "updateStatus", "group": "account", - "weight": 37, "cookies": false, "type": "", "demo": "account\/update-status.md", @@ -3125,7 +3059,6 @@ "x-appwrite": { "method": "createEmailToken", "group": "tokens", - "weight": 25, "cookies": false, "type": "", "demo": "account\/create-email-token.md", @@ -3166,13 +3099,11 @@ "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. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "default": null, "x-example": "<USER_ID>" }, "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, @@ -3218,7 +3149,6 @@ "x-appwrite": { "method": "createMagicURLToken", "group": "tokens", - "weight": 24, "cookies": false, "type": "", "demo": "account\/create-magic-url-token.md", @@ -3259,13 +3189,11 @@ "userId": { "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. If the email address has never been used, a new account is created using the provided userId. Otherwise, if the email address is already attached to an account, the user ID is ignored.", - "default": null, "x-example": "<USER_ID>" }, "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" }, @@ -3313,7 +3241,6 @@ "x-appwrite": { "method": "createOAuth2Token", "group": "tokens", - "weight": 23, "cookies": false, "type": "webAuth", "demo": "account\/create-o-auth-2-token.md", @@ -3394,7 +3321,6 @@ "zoom" ], "x-enum-name": "OAuthProvider", - "x-enum-keys": [], "in": "path" }, { @@ -3458,7 +3384,6 @@ "x-appwrite": { "method": "createPhoneToken", "group": "tokens", - "weight": 28, "cookies": false, "type": "", "demo": "account\/create-phone-token.md", @@ -3499,13 +3424,11 @@ "userId": { "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. If the phone number has never been used, a new account is created using the provided userId. Otherwise, if the phone number is already attached to an account, the user ID is ignored.", - "default": null, "x-example": "<USER_ID>" }, "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" } @@ -3545,7 +3468,6 @@ "x-appwrite": { "method": "createEmailVerification", "group": "verification", - "weight": 40, "cookies": false, "type": "", "demo": "account\/create-email-verification.md", @@ -3637,7 +3559,6 @@ "url": { "type": "string", "description": "URL to redirect the user back to your app from the verification email. Only URLs from hostnames in your project platform list are allowed. This requirement helps to prevent an [open redirect](https:\/\/cheatsheetseries.owasp.org\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html) attack against your project API.", - "default": null, "x-example": "https:\/\/example.com", "format": "url" } @@ -3674,7 +3595,6 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "verification", - "weight": 41, "cookies": false, "type": "", "demo": "account\/update-email-verification.md", @@ -3770,13 +3690,11 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -3815,7 +3733,6 @@ "x-appwrite": { "method": "createPhoneVerification", "group": "verification", - "weight": 42, "cookies": false, "type": "", "demo": "account\/create-phone-verification.md", @@ -3872,7 +3789,6 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "verification", - "weight": 43, "cookies": false, "type": "", "demo": "account\/update-phone-verification.md", @@ -3910,13 +3826,11 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "secret": { "type": "string", "description": "Valid verification token.", - "default": null, "x-example": "<SECRET>" } }, @@ -3953,7 +3867,6 @@ "x-appwrite": { "method": "listEvents", "group": null, - "weight": 1206, "cookies": false, "type": "", "demo": "activities\/list-events.md", @@ -4015,7 +3928,6 @@ "x-appwrite": { "method": "getEvent", "group": "events", - "weight": 1207, "cookies": false, "type": "", "demo": "activities\/get-event.md", @@ -4077,7 +3989,6 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 176, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -4205,7 +4116,6 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 175, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -4339,7 +4249,6 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 179, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -4405,7 +4314,6 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 177, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -4895,7 +4803,6 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 178, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -4981,7 +4888,6 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 181, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -5075,7 +4981,6 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 180, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -5169,7 +5074,6 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 182, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -5257,8 +5161,7 @@ "light", "dark" ], - "x-enum-name": null, - "x-enum-keys": [], + "x-enum-name": "BrowserTheme", "default": "light", "in": "query" }, @@ -5294,7 +5197,7 @@ "description": "IANA timezone identifier (e.g., \"America\/New_York\", \"Europe\/London\"). Defaults to browser default.", "required": false, "type": "string", - "x-example": "america\/new_york", + "x-example": "America\/New_York", "enum": [ "africa\/abidjan", "africa\/accra", @@ -5716,9 +5619,7 @@ "pacific\/wallis", "utc" ], - "x-enum-name": null, - "x-enum-keys": [], - "default": "", + "x-enum-name": "Timezone", "in": "query" }, { @@ -5790,8 +5691,7 @@ "web-share", "xr-spatial-tracking" ], - "x-enum-name": "BrowserPermission", - "x-enum-keys": [] + "x-enum-name": "BrowserPermission" }, "x-example": "[\"geolocation\",\"notifications\"]", "default": [], @@ -5853,8 +5753,6 @@ "gif" ], "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "", "in": "query" } ] @@ -5884,7 +5782,6 @@ "x-appwrite": { "method": "listArchives", "group": null, - "weight": 1075, "cookies": false, "type": "", "demo": "backups\/list-archives.md", @@ -5950,7 +5847,6 @@ "x-appwrite": { "method": "createArchive", "group": null, - "weight": 1076, "cookies": false, "type": "", "demo": "backups\/create-archive.md", @@ -5986,7 +5882,6 @@ "services": { "type": "array", "description": "Array of services to backup", - "default": null, "x-example": null, "items": { "type": "string", @@ -5998,14 +5893,12 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "resourceId": { "type": "string", "description": "Resource ID. When set, only this single resource will be backed up.", - "default": null, "x-example": "<RESOURCE_ID>", "x-nullable": true } @@ -6042,7 +5935,6 @@ "x-appwrite": { "method": "getArchive", "group": null, - "weight": 1074, "cookies": false, "type": "", "demo": "backups\/get-archive.md", @@ -6101,7 +5993,6 @@ "x-appwrite": { "method": "deleteArchive", "group": null, - "weight": 1077, "cookies": false, "type": "", "demo": "backups\/delete-archive.md", @@ -6163,7 +6054,6 @@ "x-appwrite": { "method": "listPolicies", "group": null, - "weight": 1070, "cookies": false, "type": "", "demo": "backups\/list-policies.md", @@ -6232,7 +6122,6 @@ "x-appwrite": { "method": "createPolicy", "group": null, - "weight": 1071, "cookies": false, "type": "", "demo": "backups\/create-policy.md", @@ -6271,7 +6160,6 @@ "policyId": { "type": "string", "description": "Policy ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, "x-example": "<POLICY_ID>" }, "name": { @@ -6283,7 +6171,6 @@ "services": { "type": "array", "description": "Array of services to backup", - "default": null, "x-example": null, "items": { "type": "string", @@ -6295,14 +6182,12 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "resourceId": { "type": "string", "description": "Resource ID. When set, only this single resource will be backed up.", - "default": null, "x-example": "<RESOURCE_ID>", "x-nullable": true }, @@ -6315,14 +6200,12 @@ "retention": { "type": "integer", "description": "Days to keep backups before deletion", - "default": null, "x-example": 1, "format": "int32" }, "schedule": { "type": "string", "description": "Schedule CRON syntax.", - "default": null, "x-example": null } }, @@ -6361,7 +6244,6 @@ "x-appwrite": { "method": "getPolicy", "group": null, - "weight": 1069, "cookies": false, "type": "", "demo": "backups\/get-policy.md", @@ -6426,7 +6308,6 @@ "x-appwrite": { "method": "updatePolicy", "group": null, - "weight": 1072, "cookies": false, "type": "", "demo": "backups\/update-policy.md", @@ -6473,14 +6354,12 @@ "name": { "type": "string", "description": "Policy name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>", "x-nullable": true }, "retention": { "type": "integer", "description": "Days to keep backups before deletion", - "default": null, "x-example": 1, "format": "int32", "x-nullable": true @@ -6488,13 +6367,11 @@ "schedule": { "type": "string", "description": "Cron expression", - "default": null, "x-example": null }, "enabled": { "type": "boolean", "description": "Is Backup enabled? When set to 'disabled', No backup will be taken", - "default": null, "x-example": false, "x-nullable": true } @@ -6525,7 +6402,6 @@ "x-appwrite": { "method": "deletePolicy", "group": null, - "weight": 1073, "cookies": false, "type": "", "demo": "backups\/delete-policy.md", @@ -6592,7 +6468,6 @@ "x-appwrite": { "method": "createRestoration", "group": null, - "weight": 1080, "cookies": false, "type": "", "demo": "backups\/create-restoration.md", @@ -6628,13 +6503,11 @@ "archiveId": { "type": "string", "description": "Backup archive ID to restore", - "default": null, "x-example": "<ARCHIVE_ID>" }, "services": { "type": "array", "description": "Array of services to restore", - "default": null, "x-example": null, "items": { "type": "string", @@ -6646,8 +6519,7 @@ "functions", "storage" ], - "x-enum-name": "BackupServices", - "x-enum-keys": [] + "x-enum-name": "BackupServices" } }, "newResourceId": { @@ -6696,7 +6568,6 @@ "x-appwrite": { "method": "listRestorations", "group": null, - "weight": 1079, "cookies": false, "type": "", "demo": "backups\/list-restorations.md", @@ -6762,7 +6633,6 @@ "x-appwrite": { "method": "getRestoration", "group": null, - "weight": 1078, "cookies": false, "type": "", "demo": "backups\/get-restoration.md", @@ -6824,7 +6694,6 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 704, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -6942,7 +6811,6 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 700, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -7015,13 +6883,11 @@ "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": { @@ -7064,7 +6930,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 774, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -7133,7 +6998,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 770, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -7206,7 +7070,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 771, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -7271,7 +7134,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 772, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -7352,7 +7214,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 773, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -7419,7 +7280,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 775, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -7502,7 +7362,6 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 701, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -7598,7 +7457,6 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 702, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -7678,7 +7536,6 @@ "name": { "type": "string", "description": "Database name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "enabled": { @@ -7712,7 +7569,6 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 703, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -7807,7 +7663,6 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 712, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -7903,7 +7758,6 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 708, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -7951,19 +7805,16 @@ "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": { @@ -8034,7 +7885,6 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 709, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -8108,7 +7958,6 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 710, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -8164,13 +8013,11 @@ "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\")\"]", "x-nullable": true, "items": { @@ -8220,7 +8067,6 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 711, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -8294,7 +8140,6 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 729, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -8391,7 +8236,6 @@ "x-appwrite": { "method": "createBigIntAttribute", "group": "attributes", - "weight": 742, "cookies": false, "type": "", "demo": "databases\/create-big-int-attribute.md", @@ -8447,19 +8291,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "min": { "type": "integer", "description": "Minimum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -8467,7 +8308,6 @@ "max": { "type": "integer", "description": "Maximum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -8475,7 +8315,6 @@ "default": { "type": "integer", "description": "Default value. Cannot be set when attribute is required.", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -8522,7 +8361,6 @@ "x-appwrite": { "method": "updateBigIntAttribute", "group": "attributes", - "weight": 743, "cookies": false, "type": "", "demo": "databases\/update-big-int-attribute.md", @@ -8585,13 +8423,11 @@ "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "min": { "type": "integer", "description": "Minimum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -8599,7 +8435,6 @@ "max": { "type": "integer", "description": "Maximum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -8607,7 +8442,6 @@ "default": { "type": "integer", "description": "Default value. Cannot be set when attribute is required.", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -8615,7 +8449,6 @@ "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -8655,7 +8488,6 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 730, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -8711,19 +8543,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "default": { "type": "boolean", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "default": null, "x-example": false, "x-nullable": true }, @@ -8769,7 +8598,6 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 731, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -8832,20 +8660,17 @@ "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "default": { "type": "boolean", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "default": null, "x-example": false, "x-nullable": true }, "newKey": { "type": "string", "description": "New attribute key.", - "default": null, "x-example": null, "x-nullable": true } @@ -8885,7 +8710,6 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 732, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -8941,19 +8765,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "default": { "type": "string", "description": "Default value for the attribute in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when attribute is required.", - "default": null, "x-example": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -9000,7 +8821,6 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 733, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -9063,13 +8883,11 @@ "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -9077,7 +8895,6 @@ "newKey": { "type": "string", "description": "New attribute key.", - "default": null, "x-example": null, "x-nullable": true } @@ -9117,7 +8934,6 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 734, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -9173,19 +8989,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "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": "email@example.com", "format": "email", "x-nullable": true @@ -9232,7 +9045,6 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 735, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -9295,13 +9107,11 @@ "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": "email@example.com", "format": "email", "x-nullable": true @@ -9309,7 +9119,6 @@ "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -9349,7 +9158,6 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 736, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -9405,13 +9213,11 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "elements": { "type": "array", "description": "Array of enum values.", - "default": null, "x-example": null, "items": { "type": "string" @@ -9420,13 +9226,11 @@ "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 }, @@ -9473,7 +9277,6 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 737, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -9536,7 +9339,6 @@ "elements": { "type": "array", "description": "Updated list of enum values.", - "default": null, "x-example": null, "items": { "type": "string" @@ -9545,20 +9347,17 @@ "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 }, "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -9599,7 +9398,6 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 738, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -9655,19 +9453,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "min": { "type": "number", "description": "Minimum value.", - "default": null, "x-example": null, "format": "float", "x-nullable": true @@ -9675,7 +9470,6 @@ "max": { "type": "number", "description": "Maximum value.", - "default": null, "x-example": null, "format": "float", "x-nullable": true @@ -9683,7 +9477,6 @@ "default": { "type": "number", "description": "Default value. Cannot be set when required.", - "default": null, "x-example": null, "format": "float", "x-nullable": true @@ -9730,7 +9523,6 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 739, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -9793,13 +9585,11 @@ "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "min": { "type": "number", "description": "Minimum value.", - "default": null, "x-example": null, "format": "float", "x-nullable": true @@ -9807,7 +9597,6 @@ "max": { "type": "number", "description": "Maximum value.", - "default": null, "x-example": null, "format": "float", "x-nullable": true @@ -9815,7 +9604,6 @@ "default": { "type": "number", "description": "Default value. Cannot be set when required.", - "default": null, "x-example": null, "format": "float", "x-nullable": true @@ -9823,7 +9611,6 @@ "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -9863,7 +9650,6 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 740, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -9919,19 +9705,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "min": { "type": "integer", "description": "Minimum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -9939,7 +9722,6 @@ "max": { "type": "integer", "description": "Maximum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -9947,7 +9729,6 @@ "default": { "type": "integer", "description": "Default value. Cannot be set when attribute is required.", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -9994,7 +9775,6 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 741, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -10057,13 +9837,11 @@ "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "min": { "type": "integer", "description": "Minimum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -10071,7 +9849,6 @@ "max": { "type": "integer", "description": "Maximum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -10079,7 +9856,6 @@ "default": { "type": "integer", "description": "Default value. Cannot be set when attribute is required.", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -10087,7 +9863,6 @@ "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -10127,7 +9902,6 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 744, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -10183,19 +9957,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "default": { "type": "string", "description": "Default value. Cannot be set when attribute is required.", - "default": null, "x-example": null, "x-nullable": true }, @@ -10241,7 +10012,6 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 745, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -10304,20 +10074,17 @@ "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "default": { "type": "string", "description": "Default value. Cannot be set when attribute is required.", - "default": null, "x-example": null, "x-nullable": true }, "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -10357,7 +10124,6 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 746, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -10413,19 +10179,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "default": { "type": "array", "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", - "default": null, "x-example": "[[1, 2], [3, 4], [5, 6]]", "x-nullable": true } @@ -10465,7 +10228,6 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 747, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -10528,20 +10290,17 @@ "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "default": { "type": "array", "description": "Default value for attribute when not provided, two-dimensional array of coordinate pairs, [[longitude, latitude], [longitude, latitude], \u2026], listing the vertices of the line in order. Cannot be set when attribute is required.", - "default": null, "x-example": "[[1, 2], [3, 4], [5, 6]]", "x-nullable": true }, "newKey": { "type": "string", "description": "New attribute key.", - "default": null, "x-example": null, "x-nullable": true } @@ -10580,7 +10339,6 @@ "x-appwrite": { "method": "createLongtextAttribute", "group": "attributes", - "weight": 764, "cookies": false, "type": "", "demo": "databases\/create-longtext-attribute.md", @@ -10632,19 +10390,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "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 }, @@ -10696,7 +10451,6 @@ "x-appwrite": { "method": "updateLongtextAttribute", "group": "attributes", - "weight": 765, "cookies": false, "type": "", "demo": "databases\/update-longtext-attribute.md", @@ -10755,20 +10509,17 @@ "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 }, "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -10808,7 +10559,6 @@ "x-appwrite": { "method": "createMediumtextAttribute", "group": "attributes", - "weight": 762, "cookies": false, "type": "", "demo": "databases\/create-mediumtext-attribute.md", @@ -10860,19 +10610,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "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 }, @@ -10924,7 +10671,6 @@ "x-appwrite": { "method": "updateMediumtextAttribute", "group": "attributes", - "weight": 763, "cookies": false, "type": "", "demo": "databases\/update-mediumtext-attribute.md", @@ -10983,20 +10729,17 @@ "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 }, "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -11036,7 +10779,6 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 748, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -11092,19 +10834,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "default": { "type": "array", "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", - "default": null, "x-example": "[1, 2]", "x-nullable": true } @@ -11144,7 +10883,6 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 749, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -11207,20 +10945,17 @@ "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "default": { "type": "array", "description": "Default value for attribute when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when attribute is required.", - "default": null, "x-example": "[1, 2]", "x-nullable": true }, "newKey": { "type": "string", "description": "New attribute key.", - "default": null, "x-example": null, "x-nullable": true } @@ -11259,7 +10994,6 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 750, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -11315,19 +11049,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "default": { "type": "array", "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", - "default": null, "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", "x-nullable": true } @@ -11367,7 +11098,6 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 751, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -11430,20 +11160,17 @@ "required": { "type": "boolean", "description": "Is attribute required?", - "default": null, "x-example": false }, "default": { "type": "array", "description": "Default value for attribute when not provided, three-dimensional array where the outer array holds one or more linear rings, [[[longitude, latitude], \u2026], \u2026], the first ring is the exterior boundary, any additional rings are interior holes, and each ring must start and end with the same coordinate pair. Cannot be set when attribute is required.", - "default": null, "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", "x-nullable": true }, "newKey": { "type": "string", "description": "New attribute key.", - "default": null, "x-example": null, "x-nullable": true } @@ -11482,7 +11209,6 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 752, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -11538,13 +11264,11 @@ "relatedCollectionId": { "type": "string", "description": "Related Collection ID.", - "default": null, "x-example": "<RELATED_COLLECTION_ID>" }, "type": { "type": "string", "description": "Relation type", - "default": null, "x-example": "oneToOne", "enum": [ "oneToOne", @@ -11552,8 +11276,7 @@ "manyToMany", "oneToMany" ], - "x-enum-name": "RelationshipType", - "x-enum-keys": [] + "x-enum-name": "RelationshipType" }, "twoWay": { "type": "boolean", @@ -11564,14 +11287,12 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null, "x-nullable": true }, "twoWayKey": { "type": "string", "description": "Two Way Attribute Key.", - "default": null, "x-example": null, "x-nullable": true }, @@ -11585,8 +11306,7 @@ "restrict", "setNull" ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [] + "x-enum-name": "RelationMutate" } }, "required": [ @@ -11624,7 +11344,6 @@ "x-appwrite": { "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 753, "cookies": false, "type": "", "demo": "databases\/update-relationship-attribute.md", @@ -11687,20 +11406,17 @@ "onDelete": { "type": "string", "description": "Constraints option", - "default": null, "x-example": "cascade", "enum": [ "cascade", "restrict", "setNull" ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [] + "x-enum-name": "RelationMutate" }, "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -11736,7 +11452,6 @@ "x-appwrite": { "method": "createStringAttribute", "group": "attributes", - "weight": 754, "cookies": false, "type": "", "demo": "databases\/create-string-attribute.md", @@ -11792,26 +11507,22 @@ "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 }, @@ -11864,7 +11575,6 @@ "x-appwrite": { "method": "updateStringAttribute", "group": "attributes", - "weight": 755, "cookies": false, "type": "", "demo": "databases\/update-string-attribute.md", @@ -11927,20 +11637,17 @@ "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 @@ -11948,7 +11655,6 @@ "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -11988,7 +11694,6 @@ "x-appwrite": { "method": "createTextAttribute", "group": "attributes", - "weight": 760, "cookies": false, "type": "", "demo": "databases\/create-text-attribute.md", @@ -12040,19 +11745,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "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 }, @@ -12104,7 +11806,6 @@ "x-appwrite": { "method": "updateTextAttribute", "group": "attributes", - "weight": 761, "cookies": false, "type": "", "demo": "databases\/update-text-attribute.md", @@ -12163,20 +11864,17 @@ "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 }, "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -12216,7 +11914,6 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 756, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -12272,19 +11969,16 @@ "key": { "type": "string", "description": "Attribute Key.", - "default": null, "x-example": null }, "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": "https:\/\/example.com", "format": "url", "x-nullable": true @@ -12331,7 +12025,6 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 757, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -12394,13 +12087,11 @@ "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": "https:\/\/example.com", "format": "url", "x-nullable": true @@ -12408,7 +12099,6 @@ "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -12448,7 +12138,6 @@ "x-appwrite": { "method": "createVarcharAttribute", "group": "attributes", - "weight": 758, "cookies": false, "type": "", "demo": "databases\/create-varchar-attribute.md", @@ -12500,26 +12189,22 @@ "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 }, @@ -12572,7 +12257,6 @@ "x-appwrite": { "method": "updateVarcharAttribute", "group": "attributes", - "weight": 759, "cookies": false, "type": "", "demo": "databases\/update-varchar-attribute.md", @@ -12631,20 +12315,17 @@ "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 @@ -12652,7 +12333,6 @@ "newKey": { "type": "string", "description": "New Attribute Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -12772,7 +12452,6 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 727, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -12848,7 +12527,6 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 728, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -12929,7 +12607,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 918, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -13045,7 +12722,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 715, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -13187,7 +12863,6 @@ "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": { @@ -13206,7 +12881,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -13240,7 +12914,6 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 720, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -13331,7 +13004,6 @@ "documents": { "type": "array", "description": "Array of document data as JSON objects. May contain partial documents.", - "default": null, "x-example": null, "items": { "type": "object" @@ -13340,7 +13012,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -13377,7 +13048,6 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 718, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -13448,7 +13118,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -13482,7 +13151,6 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 722, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -13547,7 +13215,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -13581,7 +13248,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 716, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -13686,7 +13352,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 719, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -13796,7 +13461,6 @@ "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": { @@ -13806,7 +13470,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -13840,7 +13503,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 717, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -13913,7 +13575,6 @@ "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": { @@ -13923,7 +13584,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -13952,7 +13612,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 721, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -14019,7 +13678,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -14055,7 +13713,6 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 726, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -14136,7 +13793,6 @@ "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", "x-nullable": true @@ -14144,7 +13800,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -14180,7 +13835,6 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 725, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -14261,7 +13915,6 @@ "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", "x-nullable": true @@ -14269,7 +13922,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -14303,7 +13955,6 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 769, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -14398,7 +14049,6 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 766, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -14454,13 +14104,11 @@ "key": { "type": "string", "description": "Index Key.", - "default": null, "x-example": null }, "type": { "type": "string", "description": "Index type.", - "default": null, "x-example": "key", "enum": [ "key", @@ -14468,13 +14116,11 @@ "unique", "spatial" ], - "x-enum-name": "DatabasesIndexType", - "x-enum-keys": [] + "x-enum-name": "DatabasesIndexType" }, "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" @@ -14491,8 +14137,7 @@ "asc", "desc" ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] + "x-enum-name": "OrderBy" } }, "lengths": { @@ -14539,7 +14184,6 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 767, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -14615,7 +14259,6 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 768, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -14696,7 +14339,6 @@ "x-appwrite": { "method": "list", "group": "documentsdb", - "weight": 855, "cookies": false, "type": "", "demo": "documentsdb\/list.md", @@ -14735,15 +14377,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.", @@ -14780,7 +14413,6 @@ "x-appwrite": { "method": "create", "group": "documentsdb", - "weight": 851, "cookies": false, "type": "", "demo": "documentsdb\/create.md", @@ -14816,13 +14448,11 @@ "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": { @@ -14865,7 +14495,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 883, "cookies": false, "type": "", "demo": "documentsdb\/list-transactions.md", @@ -14934,7 +14563,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 879, "cookies": false, "type": "", "demo": "documentsdb\/create-transaction.md", @@ -15007,7 +14635,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 880, "cookies": false, "type": "", "demo": "documentsdb\/get-transaction.md", @@ -15072,7 +14699,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 881, "cookies": false, "type": "", "demo": "documentsdb\/update-transaction.md", @@ -15153,7 +14779,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 882, "cookies": false, "type": "", "demo": "documentsdb\/delete-transaction.md", @@ -15220,7 +14845,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 884, "cookies": false, "type": "", "demo": "documentsdb\/create-operations.md", @@ -15302,7 +14926,6 @@ "x-appwrite": { "method": "get", "group": "documentsdb", - "weight": 852, "cookies": false, "type": "", "demo": "documentsdb\/get.md", @@ -15364,7 +14987,6 @@ "x-appwrite": { "method": "update", "group": "documentsdb", - "weight": 853, "cookies": false, "type": "", "demo": "documentsdb\/update.md", @@ -15408,7 +15030,6 @@ "name": { "type": "string", "description": "Database name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "enabled": { @@ -15445,7 +15066,6 @@ "x-appwrite": { "method": "delete", "group": "documentsdb", - "weight": 854, "cookies": false, "type": "", "demo": "documentsdb\/delete.md", @@ -15507,7 +15127,6 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 862, "cookies": false, "type": "", "demo": "documentsdb\/list-collections.md", @@ -15599,7 +15218,6 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 858, "cookies": false, "type": "", "demo": "documentsdb\/create-collection.md", @@ -15643,19 +15261,16 @@ "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": { @@ -15726,7 +15341,6 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 859, "cookies": false, "type": "", "demo": "documentsdb\/get-collection.md", @@ -15796,7 +15410,6 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 860, "cookies": false, "type": "", "demo": "documentsdb\/update-collection.md", @@ -15848,13 +15461,11 @@ "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" @@ -15906,7 +15517,6 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 861, "cookies": false, "type": "", "demo": "documentsdb\/delete-collection.md", @@ -15976,7 +15586,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 919, "cookies": false, "type": "", "demo": "documentsdb\/list-documents.md", @@ -16088,7 +15697,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 868, "cookies": false, "type": "", "demo": "documentsdb\/create-document.md", @@ -16216,7 +15824,6 @@ "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" @@ -16234,7 +15841,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -16267,7 +15873,6 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 873, "cookies": false, "type": "", "demo": "documentsdb\/upsert-documents.md", @@ -16350,7 +15955,6 @@ "documents": { "type": "array", "description": "Array of document data as JSON objects. May contain partial documents.", - "default": null, "x-example": null, "items": { "type": "object" @@ -16359,7 +15963,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } }, @@ -16395,7 +15998,6 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 871, "cookies": false, "type": "", "demo": "documentsdb\/update-documents.md", @@ -16462,7 +16064,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -16495,7 +16096,6 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 875, "cookies": false, "type": "", "demo": "documentsdb\/delete-documents.md", @@ -16556,7 +16156,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -16589,7 +16188,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 869, "cookies": false, "type": "", "demo": "documentsdb\/get-document.md", @@ -16690,7 +16288,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 872, "cookies": false, "type": "", "demo": "documentsdb\/upsert-document.md", @@ -16792,7 +16389,6 @@ "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" @@ -16801,7 +16397,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -16834,7 +16429,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 870, "cookies": false, "type": "", "demo": "documentsdb\/update-document.md", @@ -16903,7 +16497,6 @@ "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" @@ -16912,7 +16505,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -16940,7 +16532,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 874, "cookies": false, "type": "", "demo": "documentsdb\/delete-document.md", @@ -17003,7 +16594,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -17038,7 +16628,6 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 878, "cookies": false, "type": "", "demo": "documentsdb\/decrement-document-attribute.md", @@ -17115,14 +16704,12 @@ "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>" } } @@ -17157,7 +16744,6 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 877, "cookies": false, "type": "", "demo": "documentsdb\/increment-document-attribute.md", @@ -17234,14 +16820,12 @@ "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>" } } @@ -17274,7 +16858,6 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 867, "cookies": false, "type": "", "demo": "documentsdb\/list-indexes.md", @@ -17365,7 +16948,6 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 864, "cookies": false, "type": "", "demo": "documentsdb\/create-index.md", @@ -17417,26 +16999,22 @@ "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" ], - "x-enum-name": "DocumentsDBIndexType", - "x-enum-keys": [] + "x-enum-name": "DocumentsDBIndexType" }, "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" @@ -17453,8 +17031,7 @@ "asc", "desc" ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] + "x-enum-name": "OrderBy" } }, "lengths": { @@ -17501,7 +17078,6 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 865, "cookies": false, "type": "", "demo": "documentsdb\/get-index.md", @@ -17573,7 +17149,6 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 866, "cookies": false, "type": "", "demo": "documentsdb\/delete-index.md", @@ -17650,7 +17225,6 @@ "x-appwrite": { "method": "list", "group": "functions", - "weight": 425, "cookies": false, "type": "", "demo": "functions\/list.md", @@ -17733,7 +17307,6 @@ "x-appwrite": { "method": "create", "group": "functions", - "weight": 921, "cookies": false, "type": "", "demo": "functions\/create.md", @@ -17768,19 +17341,16 @@ "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", @@ -17835,6 +17405,7 @@ "dart-3.9", "dart-3.10", "dart-3.11", + "dart-3.12", "dotnet-6.0", "dotnet-7.0", "dotnet-8.0", @@ -17874,10 +17445,10 @@ "flutter-3.32", "flutter-3.35", "flutter-3.38", - "flutter-3.41" + "flutter-3.41", + "flutter-3.44" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "FunctionRuntime" }, "execute": { "type": "array", @@ -18037,8 +17608,7 @@ "events.read", "usage.read" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "ProjectKeyScopes" } }, "installationId": { @@ -18071,6 +17641,24 @@ "default": "", "x-example": "<PROVIDER_ROOT_DIRECTORY>" }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, "buildSpecification": { "type": "string", "description": "Build specification for the function deployments.", @@ -18125,7 +17713,6 @@ "x-appwrite": { "method": "listRuntimes", "group": "runtimes", - "weight": 427, "cookies": false, "type": "", "demo": "functions\/list-runtimes.md", @@ -18176,7 +17763,6 @@ "x-appwrite": { "method": "listSpecifications", "group": "runtimes", - "weight": 428, "cookies": false, "type": "", "demo": "functions\/list-specifications.md", @@ -18227,7 +17813,6 @@ "x-appwrite": { "method": "get", "group": "functions", - "weight": 423, "cookies": false, "type": "", "demo": "functions\/get.md", @@ -18288,7 +17873,6 @@ "x-appwrite": { "method": "update", "group": "functions", - "weight": 922, "cookies": false, "type": "", "demo": "functions\/update.md", @@ -18331,13 +17915,11 @@ "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", @@ -18392,6 +17974,7 @@ "dart-3.9", "dart-3.10", "dart-3.11", + "dart-3.12", "dotnet-6.0", "dotnet-7.0", "dotnet-8.0", @@ -18431,10 +18014,10 @@ "flutter-3.32", "flutter-3.35", "flutter-3.38", - "flutter-3.41" + "flutter-3.41", + "flutter-3.44" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "FunctionRuntime" }, "execute": { "type": "array", @@ -18594,8 +18177,7 @@ "events.read", "usage.read" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "ProjectKeyScopes" } }, "installationId": { @@ -18607,7 +18189,6 @@ "providerRepositoryId": { "type": "string", "description": "Repository ID of the repo linked to the function", - "default": null, "x-example": "<PROVIDER_REPOSITORY_ID>", "x-nullable": true }, @@ -18629,6 +18210,24 @@ "default": "", "x-example": "<PROVIDER_ROOT_DIRECTORY>" }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, "buildSpecification": { "type": "string", "description": "Build specification for the function deployments.", @@ -18676,7 +18275,6 @@ "x-appwrite": { "method": "delete", "group": "functions", - "weight": 426, "cookies": false, "type": "", "demo": "functions\/delete.md", @@ -18739,7 +18337,6 @@ "x-appwrite": { "method": "updateFunctionDeployment", "group": "functions", - "weight": 431, "cookies": false, "type": "", "demo": "functions\/update-function-deployment.md", @@ -18782,7 +18379,6 @@ "deploymentId": { "type": "string", "description": "Deployment ID.", - "default": null, "x-example": "<DEPLOYMENT_ID>" } }, @@ -18818,7 +18414,6 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 432, "cookies": false, "type": "", "demo": "functions\/list-deployments.md", @@ -18909,7 +18504,6 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 429, "cookies": false, "type": "upload", "demo": "functions\/create-deployment.md", @@ -19003,7 +18597,6 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 437, "cookies": false, "type": "", "demo": "functions\/create-duplicate-deployment.md", @@ -19046,7 +18639,6 @@ "deploymentId": { "type": "string", "description": "Deployment ID.", - "default": null, "x-example": "<DEPLOYMENT_ID>" }, "buildId": { @@ -19090,7 +18682,6 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 434, "cookies": false, "type": "", "demo": "functions\/create-template-deployment.md", @@ -19133,38 +18724,32 @@ "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": [] + "x-enum-name": "TemplateReferenceType" }, "reference": { "type": "string", "description": "Reference value, can be a commit hash, branch name, or release tag", - "default": null, "x-example": "<REFERENCE>" }, "activate": { @@ -19212,7 +18797,6 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 435, "cookies": false, "type": "", "demo": "functions\/create-vcs-deployment.md", @@ -19255,19 +18839,16 @@ "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": [] + "x-enum-name": "VCSReferenceType" }, "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": { @@ -19310,7 +18891,6 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 430, "cookies": false, "type": "", "demo": "functions\/get-deployment.md", @@ -19374,7 +18954,6 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 433, "cookies": false, "type": "", "demo": "functions\/delete-deployment.md", @@ -19443,7 +19022,6 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 436, "cookies": false, "type": "location", "demo": "functions\/get-deployment-download.md", @@ -19497,7 +19075,6 @@ "output" ], "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], "default": "source", "in": "query" } @@ -19530,7 +19107,6 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 438, "cookies": false, "type": "", "demo": "functions\/update-deployment-status.md", @@ -19599,7 +19175,6 @@ "x-appwrite": { "method": "listExecutions", "group": "executions", - "weight": 441, "cookies": false, "type": "", "demo": "functions\/list-executions.md", @@ -19687,7 +19262,6 @@ "x-appwrite": { "method": "createExecution", "group": "executions", - "weight": 439, "cookies": false, "type": "", "demo": "functions\/create-execution.md", @@ -19765,8 +19339,7 @@ "OPTIONS", "HEAD" ], - "x-enum-name": "ExecutionMethod", - "x-enum-keys": [] + "x-enum-name": "ExecutionMethod" }, "headers": { "type": "object", @@ -19777,7 +19350,6 @@ "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 } @@ -19811,7 +19383,6 @@ "x-appwrite": { "method": "getExecution", "group": "executions", - "weight": 440, "cookies": false, "type": "", "demo": "functions\/get-execution.md", @@ -19881,7 +19452,6 @@ "x-appwrite": { "method": "deleteExecution", "group": "executions", - "weight": 442, "cookies": false, "type": "", "demo": "functions\/delete-execution.md", @@ -19953,7 +19523,6 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 447, "cookies": false, "type": "", "demo": "functions\/list-variables.md", @@ -20035,7 +19604,6 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 923, "cookies": false, "type": "", "demo": "functions\/create-variable.md", @@ -20078,19 +19646,16 @@ "variableId": { "type": "string", "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, "x-example": "<VARIABLE_ID>" }, "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": { @@ -20134,7 +19699,6 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 446, "cookies": false, "type": "", "demo": "functions\/get-variable.md", @@ -20203,7 +19767,6 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 448, "cookies": false, "type": "", "demo": "functions\/update-variable.md", @@ -20254,21 +19817,18 @@ "key": { "type": "string", "description": "Variable key. Max length: 255 chars.", - "default": null, "x-example": "<KEY>", "x-nullable": true }, "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 } @@ -20297,7 +19857,6 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 449, "cookies": false, "type": "", "demo": "functions\/delete-variable.md", @@ -20368,7 +19927,6 @@ "x-appwrite": { "method": "query", "group": "graphql", - "weight": 116, "cookies": false, "type": "graphql", "demo": "graphql\/query.md", @@ -20445,7 +20003,6 @@ "x-appwrite": { "method": "mutation", "group": "graphql", - "weight": 115, "cookies": false, "type": "graphql", "demo": "graphql\/mutation.md", @@ -20520,7 +20077,6 @@ "x-appwrite": { "method": "get", "group": "health", - "weight": 452, "cookies": false, "type": "", "demo": "health\/get.md", @@ -20572,7 +20128,6 @@ "x-appwrite": { "method": "getAntivirus", "group": "health", - "weight": 461, "cookies": false, "type": "", "demo": "health\/get-antivirus.md", @@ -20624,7 +20179,6 @@ "x-appwrite": { "method": "getCache", "group": "health", - "weight": 455, "cookies": false, "type": "", "demo": "health\/get-cache.md", @@ -20676,7 +20230,6 @@ "x-appwrite": { "method": "getCertificate", "group": "health", - "weight": 458, "cookies": false, "type": "", "demo": "health\/get-certificate.md", @@ -20737,7 +20290,6 @@ "x-appwrite": { "method": "getConsolePausing", "group": null, - "weight": 1063, "cookies": false, "type": "", "demo": "health\/get-console-pausing.md", @@ -20809,7 +20361,6 @@ "x-appwrite": { "method": "getDB", "group": "health", - "weight": 454, "cookies": false, "type": "", "demo": "health\/get-db.md", @@ -20861,7 +20412,6 @@ "x-appwrite": { "method": "getPubSub", "group": "health", - "weight": 456, "cookies": false, "type": "", "demo": "health\/get-pub-sub.md", @@ -20913,7 +20463,6 @@ "x-appwrite": { "method": "getQueueAudits", "group": "queue", - "weight": 462, "cookies": false, "type": "", "demo": "health\/get-queue-audits.md", @@ -20976,7 +20525,6 @@ "x-appwrite": { "method": "getQueueBillingProjectAggregation", "group": null, - "weight": 1059, "cookies": false, "type": "", "demo": "health\/get-queue-billing-project-aggregation.md", @@ -21039,7 +20587,6 @@ "x-appwrite": { "method": "getQueueBillingTeamAggregation", "group": null, - "weight": 1058, "cookies": false, "type": "", "demo": "health\/get-queue-billing-team-aggregation.md", @@ -21102,7 +20649,6 @@ "x-appwrite": { "method": "getQueueBuilds", "group": "queue", - "weight": 466, "cookies": false, "type": "", "demo": "health\/get-queue-builds.md", @@ -21165,7 +20711,6 @@ "x-appwrite": { "method": "getQueuePriorityBuilds", "group": null, - "weight": 1060, "cookies": false, "type": "", "demo": "health\/get-queue-priority-builds.md", @@ -21228,7 +20773,6 @@ "x-appwrite": { "method": "getQueueCertificates", "group": "queue", - "weight": 465, "cookies": false, "type": "", "demo": "health\/get-queue-certificates.md", @@ -21291,7 +20835,6 @@ "x-appwrite": { "method": "getQueueDatabases", "group": "queue", - "weight": 467, "cookies": false, "type": "", "demo": "health\/get-queue-databases.md", @@ -21363,7 +20906,6 @@ "x-appwrite": { "method": "getQueueDeletes", "group": "queue", - "weight": 468, "cookies": false, "type": "", "demo": "health\/get-queue-deletes.md", @@ -21426,7 +20968,6 @@ "x-appwrite": { "method": "getFailedJobs", "group": "queue", - "weight": 475, "cookies": false, "type": "", "demo": "health\/get-failed-jobs.md", @@ -21474,8 +21015,7 @@ "v1-messaging", "v1-migrations" ], - "x-enum-name": null, - "x-enum-keys": [], + "x-enum-name": "HealthQueueName", "in": "path" }, { @@ -21514,7 +21054,6 @@ "x-appwrite": { "method": "getQueueFunctions", "group": "queue", - "weight": 472, "cookies": false, "type": "", "demo": "health\/get-queue-functions.md", @@ -21577,7 +21116,6 @@ "x-appwrite": { "method": "getQueueLogs", "group": "queue", - "weight": 464, "cookies": false, "type": "", "demo": "health\/get-queue-logs.md", @@ -21640,7 +21178,6 @@ "x-appwrite": { "method": "getQueueMails", "group": "queue", - "weight": 469, "cookies": false, "type": "", "demo": "health\/get-queue-mails.md", @@ -21703,7 +21240,6 @@ "x-appwrite": { "method": "getQueueMessaging", "group": "queue", - "weight": 470, "cookies": false, "type": "", "demo": "health\/get-queue-messaging.md", @@ -21766,7 +21302,6 @@ "x-appwrite": { "method": "getQueueMigrations", "group": "queue", - "weight": 471, "cookies": false, "type": "", "demo": "health\/get-queue-migrations.md", @@ -21829,7 +21364,6 @@ "x-appwrite": { "method": "getQueueRegionManager", "group": null, - "weight": 1061, "cookies": false, "type": "", "demo": "health\/get-queue-region-manager.md", @@ -21892,7 +21426,6 @@ "x-appwrite": { "method": "getQueueStatsResources", "group": "queue", - "weight": 473, "cookies": false, "type": "", "demo": "health\/get-queue-stats-resources.md", @@ -21955,7 +21488,6 @@ "x-appwrite": { "method": "getQueueUsage", "group": "queue", - "weight": 474, "cookies": false, "type": "", "demo": "health\/get-queue-usage.md", @@ -22018,7 +21550,6 @@ "x-appwrite": { "method": "getQueueThreats", "group": null, - "weight": 1062, "cookies": false, "type": "", "demo": "health\/get-queue-threats.md", @@ -22081,7 +21612,6 @@ "x-appwrite": { "method": "getQueueWebhooks", "group": "queue", - "weight": 463, "cookies": false, "type": "", "demo": "health\/get-queue-webhooks.md", @@ -22144,7 +21674,6 @@ "x-appwrite": { "method": "getStorage", "group": "storage", - "weight": 460, "cookies": false, "type": "", "demo": "health\/get-storage.md", @@ -22196,7 +21725,6 @@ "x-appwrite": { "method": "getStorageLocal", "group": "storage", - "weight": 459, "cookies": false, "type": "", "demo": "health\/get-storage-local.md", @@ -22248,7 +21776,6 @@ "x-appwrite": { "method": "getTime", "group": "health", - "weight": 457, "cookies": false, "type": "", "demo": "health\/get-time.md", @@ -22300,7 +21827,6 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 49, "cookies": false, "type": "", "demo": "locale\/get.md", @@ -22355,7 +21881,6 @@ "x-appwrite": { "method": "listCodes", "group": null, - "weight": 50, "cookies": false, "type": "", "demo": "locale\/list-codes.md", @@ -22410,7 +21935,6 @@ "x-appwrite": { "method": "listContinents", "group": null, - "weight": 54, "cookies": false, "type": "", "demo": "locale\/list-continents.md", @@ -22465,7 +21989,6 @@ "x-appwrite": { "method": "listCountries", "group": null, - "weight": 51, "cookies": false, "type": "", "demo": "locale\/list-countries.md", @@ -22520,7 +22043,6 @@ "x-appwrite": { "method": "listCountriesEU", "group": null, - "weight": 52, "cookies": false, "type": "", "demo": "locale\/list-countries-eu.md", @@ -22575,7 +22097,6 @@ "x-appwrite": { "method": "listCountriesPhones", "group": null, - "weight": 53, "cookies": false, "type": "", "demo": "locale\/list-countries-phones.md", @@ -22630,7 +22151,6 @@ "x-appwrite": { "method": "listCurrencies", "group": null, - "weight": 55, "cookies": false, "type": "", "demo": "locale\/list-currencies.md", @@ -22685,7 +22205,6 @@ "x-appwrite": { "method": "listLanguages", "group": null, - "weight": 56, "cookies": false, "type": "", "demo": "locale\/list-languages.md", @@ -22740,7 +22259,6 @@ "x-appwrite": { "method": "listMessages", "group": "messages", - "weight": 157, "cookies": false, "type": "", "demo": "messaging\/list-messages.md", @@ -22826,7 +22344,6 @@ "x-appwrite": { "method": "createEmail", "group": "messages", - "weight": 154, "cookies": false, "type": "", "demo": "messaging\/create-email.md", @@ -22862,19 +22379,16 @@ "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": { @@ -22946,7 +22460,6 @@ "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -22988,7 +22501,6 @@ "x-appwrite": { "method": "updateEmail", "group": "messages", - "weight": 161, "cookies": false, "type": "", "demo": "messaging\/update-email.md", @@ -23032,7 +22544,6 @@ "topics": { "type": "array", "description": "List of Topic IDs.", - "default": null, "x-example": null, "x-nullable": true, "items": { @@ -23042,7 +22553,6 @@ "users": { "type": "array", "description": "List of User IDs.", - "default": null, "x-example": null, "x-nullable": true, "items": { @@ -23052,7 +22562,6 @@ "targets": { "type": "array", "description": "List of Targets IDs.", - "default": null, "x-example": null, "x-nullable": true, "items": { @@ -23062,35 +22571,30 @@ "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": { @@ -23100,7 +22604,6 @@ "bcc": { "type": "array", "description": "Array of target IDs to be added as BCC.", - "default": null, "x-example": null, "x-nullable": true, "items": { @@ -23110,7 +22613,6 @@ "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -23118,7 +22620,6 @@ "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": { @@ -23157,7 +22658,6 @@ "x-appwrite": { "method": "createPush", "group": "messages", - "weight": 156, "cookies": false, "type": "", "demo": "messaging\/create-push.md", @@ -23193,7 +22693,6 @@ "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": { @@ -23294,7 +22793,6 @@ "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -23320,8 +22818,7 @@ "normal", "high" ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [] + "x-enum-name": "MessagePriority" } }, "required": [ @@ -23358,7 +22855,6 @@ "x-appwrite": { "method": "updatePush", "group": "messages", - "weight": 163, "cookies": false, "type": "", "demo": "messaging\/update-push.md", @@ -23402,7 +22898,6 @@ "topics": { "type": "array", "description": "List of Topic IDs.", - "default": null, "x-example": null, "x-nullable": true, "items": { @@ -23412,7 +22907,6 @@ "users": { "type": "array", "description": "List of User IDs.", - "default": null, "x-example": null, "x-nullable": true, "items": { @@ -23422,7 +22916,6 @@ "targets": { "type": "array", "description": "List of Targets IDs.", - "default": null, "x-example": null, "x-nullable": true, "items": { @@ -23432,14 +22925,12 @@ "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 }, @@ -23453,49 +22944,42 @@ "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 @@ -23503,14 +22987,12 @@ "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -23518,28 +23000,24 @@ "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 } } @@ -23574,7 +23052,6 @@ "x-appwrite": { "method": "createSms", "group": "messages", - "weight": 155, "cookies": false, "type": "", "demo": "messaging\/create-sms.md", @@ -23682,13 +23159,11 @@ "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": { @@ -23727,7 +23202,6 @@ "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -23768,7 +23242,6 @@ "x-appwrite": { "method": "updateSms", "group": "messages", - "weight": 162, "cookies": false, "type": "", "demo": "messaging\/update-sms.md", @@ -23882,7 +23355,6 @@ "topics": { "type": "array", "description": "List of Topic IDs.", - "default": null, "x-example": null, "x-nullable": true, "items": { @@ -23892,7 +23364,6 @@ "users": { "type": "array", "description": "List of User IDs.", - "default": null, "x-example": null, "x-nullable": true, "items": { @@ -23902,7 +23373,6 @@ "targets": { "type": "array", "description": "List of Targets IDs.", - "default": null, "x-example": null, "x-nullable": true, "items": { @@ -23912,21 +23382,18 @@ "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -23961,7 +23428,6 @@ "x-appwrite": { "method": "getMessage", "group": "messages", - "weight": 160, "cookies": false, "type": "", "demo": "messaging\/get-message.md", @@ -24018,7 +23484,6 @@ "x-appwrite": { "method": "delete", "group": "messages", - "weight": 164, "cookies": false, "type": "", "demo": "messaging\/delete.md", @@ -24080,7 +23545,6 @@ "x-appwrite": { "method": "listMessageLogs", "group": "logs", - "weight": 158, "cookies": false, "type": "", "demo": "messaging\/list-message-logs.md", @@ -24163,7 +23627,6 @@ "x-appwrite": { "method": "listTargets", "group": "messages", - "weight": 159, "cookies": false, "type": "", "demo": "messaging\/list-targets.md", @@ -24246,7 +23709,6 @@ "x-appwrite": { "method": "listProviders", "group": "providers", - "weight": 128, "cookies": false, "type": "", "demo": "messaging\/list-providers.md", @@ -24332,7 +23794,6 @@ "x-appwrite": { "method": "createApnsProvider", "group": "providers", - "weight": 127, "cookies": false, "type": "", "demo": "messaging\/create-apns-provider.md", @@ -24442,13 +23903,11 @@ "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": { @@ -24484,7 +23943,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -24524,7 +23982,6 @@ "x-appwrite": { "method": "updateApnsProvider", "group": "providers", - "weight": 141, "cookies": false, "type": "", "demo": "messaging\/update-apns-provider.md", @@ -24646,7 +24103,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true }, @@ -24677,7 +24133,6 @@ "sandbox": { "type": "boolean", "description": "Use APNS sandbox environment.", - "default": null, "x-example": false, "x-nullable": true } @@ -24713,7 +24168,6 @@ "x-appwrite": { "method": "createFcmProvider", "group": "providers", - "weight": 126, "cookies": false, "type": "", "demo": "messaging\/create-fcm-provider.md", @@ -24815,13 +24269,11 @@ "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": { @@ -24834,7 +24286,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -24874,7 +24325,6 @@ "x-appwrite": { "method": "updateFcmProvider", "group": "providers", - "weight": 140, "cookies": false, "type": "", "demo": "messaging\/update-fcm-provider.md", @@ -24988,7 +24438,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true }, @@ -25031,7 +24480,6 @@ "x-appwrite": { "method": "createMailgunProvider", "group": "providers", - "weight": 117, "cookies": false, "type": "", "demo": "messaging\/create-mailgun-provider.md", @@ -25067,13 +24515,11 @@ "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": { @@ -25091,7 +24537,6 @@ "isEuRegion": { "type": "boolean", "description": "Set as EU region.", - "default": null, "x-example": false, "x-nullable": true }, @@ -25124,7 +24569,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -25164,7 +24608,6 @@ "x-appwrite": { "method": "updateMailgunProvider", "group": "providers", - "weight": 131, "cookies": false, "type": "", "demo": "messaging\/update-mailgun-provider.md", @@ -25226,14 +24669,12 @@ "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 }, @@ -25294,7 +24735,6 @@ "x-appwrite": { "method": "createMsg91Provider", "group": "providers", - "weight": 121, "cookies": false, "type": "", "demo": "messaging\/create-msg-91-provider.md", @@ -25330,13 +24770,11 @@ "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": { @@ -25360,7 +24798,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -25400,7 +24837,6 @@ "x-appwrite": { "method": "updateMsg91Provider", "group": "providers", - "weight": 135, "cookies": false, "type": "", "demo": "messaging\/update-msg-91-provider.md", @@ -25450,7 +24886,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true }, @@ -25504,7 +24939,6 @@ "x-appwrite": { "method": "createResendProvider", "group": "providers", - "weight": 119, "cookies": false, "type": "", "demo": "messaging\/create-resend-provider.md", @@ -25540,13 +24974,11 @@ "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": { @@ -25584,7 +25016,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -25624,7 +25055,6 @@ "x-appwrite": { "method": "updateResendProvider", "group": "providers", - "weight": 133, "cookies": false, "type": "", "demo": "messaging\/update-resend-provider.md", @@ -25674,7 +25104,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true }, @@ -25741,7 +25170,6 @@ "x-appwrite": { "method": "createSendgridProvider", "group": "providers", - "weight": 118, "cookies": false, "type": "", "demo": "messaging\/create-sendgrid-provider.md", @@ -25777,13 +25205,11 @@ "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": { @@ -25821,7 +25247,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -25861,7 +25286,6 @@ "x-appwrite": { "method": "updateSendgridProvider", "group": "providers", - "weight": 132, "cookies": false, "type": "", "demo": "messaging\/update-sendgrid-provider.md", @@ -25911,7 +25335,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true }, @@ -25978,7 +25401,6 @@ "x-appwrite": { "method": "createSmtpProvider", "group": "providers", - "weight": 120, "cookies": false, "type": "", "demo": "messaging\/create-smtp-provider.md", @@ -26102,19 +25524,16 @@ "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": { @@ -26139,15 +25558,13 @@ "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": [] + "x-enum-name": "SmtpEncryption" }, "autoTLS": { "type": "boolean", @@ -26190,7 +25607,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -26231,7 +25647,6 @@ "x-appwrite": { "method": "updateSmtpProvider", "group": "providers", - "weight": 134, "cookies": false, "type": "", "demo": "messaging\/update-smtp-provider.md", @@ -26371,7 +25786,6 @@ "port": { "type": "integer", "description": "SMTP port.", - "default": null, "x-example": 1, "format": "int32", "x-nullable": true @@ -26391,20 +25805,17 @@ "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": [] + "x-enum-name": "SmtpEncryption" }, "autoTLS": { "type": "boolean", "description": "Enable SMTP AutoTLS feature.", - "default": null, "x-example": false, "x-nullable": true }, @@ -26442,7 +25853,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -26478,7 +25888,6 @@ "x-appwrite": { "method": "createTelesignProvider", "group": "providers", - "weight": 122, "cookies": false, "type": "", "demo": "messaging\/create-telesign-provider.md", @@ -26514,13 +25923,11 @@ "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": { @@ -26545,7 +25952,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -26585,7 +25991,6 @@ "x-appwrite": { "method": "updateTelesignProvider", "group": "providers", - "weight": 136, "cookies": false, "type": "", "demo": "messaging\/update-telesign-provider.md", @@ -26635,7 +26040,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true }, @@ -26689,7 +26093,6 @@ "x-appwrite": { "method": "createTextmagicProvider", "group": "providers", - "weight": 123, "cookies": false, "type": "", "demo": "messaging\/create-textmagic-provider.md", @@ -26725,13 +26128,11 @@ "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": { @@ -26756,7 +26157,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -26796,7 +26196,6 @@ "x-appwrite": { "method": "updateTextmagicProvider", "group": "providers", - "weight": 137, "cookies": false, "type": "", "demo": "messaging\/update-textmagic-provider.md", @@ -26846,7 +26245,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true }, @@ -26900,7 +26298,6 @@ "x-appwrite": { "method": "createTwilioProvider", "group": "providers", - "weight": 124, "cookies": false, "type": "", "demo": "messaging\/create-twilio-provider.md", @@ -26936,13 +26333,11 @@ "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": { @@ -26967,7 +26362,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -27007,7 +26401,6 @@ "x-appwrite": { "method": "updateTwilioProvider", "group": "providers", - "weight": 138, "cookies": false, "type": "", "demo": "messaging\/update-twilio-provider.md", @@ -27057,7 +26450,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true }, @@ -27111,7 +26503,6 @@ "x-appwrite": { "method": "createVonageProvider", "group": "providers", - "weight": 125, "cookies": false, "type": "", "demo": "messaging\/create-vonage-provider.md", @@ -27147,13 +26538,11 @@ "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": { @@ -27178,7 +26567,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true } @@ -27218,7 +26606,6 @@ "x-appwrite": { "method": "updateVonageProvider", "group": "providers", - "weight": 139, "cookies": false, "type": "", "demo": "messaging\/update-vonage-provider.md", @@ -27268,7 +26655,6 @@ "enabled": { "type": "boolean", "description": "Set as enabled.", - "default": null, "x-example": false, "x-nullable": true }, @@ -27320,7 +26706,6 @@ "x-appwrite": { "method": "getProvider", "group": "providers", - "weight": 130, "cookies": false, "type": "", "demo": "messaging\/get-provider.md", @@ -27377,7 +26762,6 @@ "x-appwrite": { "method": "deleteProvider", "group": "providers", - "weight": 142, "cookies": false, "type": "", "demo": "messaging\/delete-provider.md", @@ -27439,7 +26823,6 @@ "x-appwrite": { "method": "listProviderLogs", "group": "providers", - "weight": 129, "cookies": false, "type": "", "demo": "messaging\/list-provider-logs.md", @@ -27522,7 +26905,6 @@ "x-appwrite": { "method": "listSubscriberLogs", "group": "subscribers", - "weight": 151, "cookies": false, "type": "", "demo": "messaging\/list-subscriber-logs.md", @@ -27605,7 +26987,6 @@ "x-appwrite": { "method": "listTopics", "group": "topics", - "weight": 144, "cookies": false, "type": "", "demo": "messaging\/list-topics.md", @@ -27689,7 +27070,6 @@ "x-appwrite": { "method": "createTopic", "group": "topics", - "weight": 143, "cookies": false, "type": "", "demo": "messaging\/create-topic.md", @@ -27725,13 +27105,11 @@ "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": { @@ -27779,7 +27157,6 @@ "x-appwrite": { "method": "getTopic", "group": "topics", - "weight": 146, "cookies": false, "type": "", "demo": "messaging\/get-topic.md", @@ -27841,7 +27218,6 @@ "x-appwrite": { "method": "updateTopic", "group": "topics", - "weight": 147, "cookies": false, "type": "", "demo": "messaging\/update-topic.md", @@ -27885,14 +27261,12 @@ "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": { @@ -27924,7 +27298,6 @@ "x-appwrite": { "method": "deleteTopic", "group": "topics", - "weight": 148, "cookies": false, "type": "", "demo": "messaging\/delete-topic.md", @@ -27986,7 +27359,6 @@ "x-appwrite": { "method": "listTopicLogs", "group": "topics", - "weight": 145, "cookies": false, "type": "", "demo": "messaging\/list-topic-logs.md", @@ -28069,7 +27441,6 @@ "x-appwrite": { "method": "listSubscribers", "group": "subscribers", - "weight": 150, "cookies": false, "type": "", "demo": "messaging\/list-subscribers.md", @@ -28161,7 +27532,6 @@ "x-appwrite": { "method": "createSubscriber", "group": "subscribers", - "weight": 149, "cookies": false, "type": "", "demo": "messaging\/create-subscriber.md", @@ -28208,13 +27578,11 @@ "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>" } }, @@ -28251,7 +27619,6 @@ "x-appwrite": { "method": "getSubscriber", "group": "subscribers", - "weight": 152, "cookies": false, "type": "", "demo": "messaging\/get-subscriber.md", @@ -28316,7 +27683,6 @@ "x-appwrite": { "method": "deleteSubscriber", "group": "subscribers", - "weight": 153, "cookies": false, "type": "", "demo": "messaging\/delete-subscriber.md", @@ -28365,6 +27731,765 @@ ] } }, + "\/organization\/keys": { + "get": { + "summary": "List organization keys", + "operationId": "organizationListKeys", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "organization" + ], + "description": "Get a list of all API keys from the current organization.", + "responses": { + "200": { + "description": "API Keys List", + "schema": { + "$ref": "#\/definitions\/keyList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listKeys", + "group": "keys", + "cookies": false, + "type": "", + "demo": "organization\/list-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "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: 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 organization key", + "operationId": "organizationCreateKey", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "organization" + ], + "description": "Create a new organization API key.", + "responses": { + "201": { + "description": "Key", + "schema": { + "$ref": "#\/definitions\/key" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createKey", + "group": "keys", + "cookies": false, + "type": "", + "demo": "organization\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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.", + "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": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes" + } + }, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "keyId", + "name", + "scopes" + ] + } + } + ] + } + }, + "\/organization\/keys\/{keyId}": { + "get": { + "summary": "Get organization key", + "operationId": "organizationGetKey", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "organization" + ], + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including its scopes.", + "responses": { + "200": { + "description": "Key", + "schema": { + "$ref": "#\/definitions\/key" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getKey", + "group": "keys", + "cookies": false, + "type": "", + "demo": "organization\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "type": "string", + "x-example": "<KEY_ID>", + "in": "path" + } + ] + }, + "put": { + "summary": "Update organization key", + "operationId": "organizationUpdateKey", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "organization" + ], + "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", + "cookies": false, + "type": "", + "demo": "organization\/update-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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.", + "x-example": "<NAME>" + }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "projects.read", + "projects.write", + "devKeys.read", + "devKeys.write", + "organization.keys.read", + "organization.keys.write", + "domains.read", + "domains.write", + "keys.read", + "keys.write" + ], + "x-enum-name": "OrganizationKeyScopes" + } + }, + "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": "2020-10-15T06:38:00.000+00:00", + "format": "datetime", + "x-nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + ] + }, + "delete": { + "summary": "Delete organization key", + "operationId": "organizationDeleteKey", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "organization" + ], + "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", + "cookies": false, + "type": "", + "demo": "organization\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "organization.keys.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "type": "string", + "x-example": "<KEY_ID>", + "in": "path" + } + ] + } + }, + "\/organization\/projects": { + "get": { + "summary": "List organization projects", + "operationId": "organizationListProjects", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "organization" + ], + "description": "Get a list of all projects. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Projects List", + "schema": { + "$ref": "#\/definitions\/projectList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listProjects", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/list-projects.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "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, teamId, labels, search", + "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 organization project", + "operationId": "organizationCreateProject", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "organization" + ], + "description": "Create a new project.", + "responses": { + "201": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createProject", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/create-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "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.", + "x-example": null + }, + "name": { + "type": "string", + "description": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "region": { + "type": "string", + "description": "Project Region.", + "x-example": "fra", + "enum": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" + ], + "x-enum-name": "Region" + } + }, + "required": [ + "projectId", + "name" + ] + } + } + ] + } + }, + "\/organization\/projects\/{projectId}": { + "get": { + "summary": "Get organization project", + "operationId": "organizationGetProject", + "consumes": [], + "produces": [], + "tags": [ + "organization" + ], + "description": "Get a project.", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getProject", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/get-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + } + ] + }, + "patch": { + "summary": "Update organization project", + "operationId": "organizationUpdateProject", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "organization" + ], + "description": "Update a project by its unique ID.", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateProject", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/update-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "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": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + ] + }, + "delete": { + "summary": "Delete organization project", + "operationId": "organizationDeleteProject", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "organization" + ], + "description": "Delete a project by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteProject", + "group": "projects", + "cookies": false, + "type": "", + "demo": "organization\/delete-project.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + } + ] + } + }, "\/presences": { "get": { "summary": "List presences", @@ -28389,7 +28514,6 @@ "x-appwrite": { "method": "list", "group": "presences", - "weight": 419, "cookies": false, "type": "", "demo": "presences\/list.md", @@ -28477,7 +28601,6 @@ "x-appwrite": { "method": "get", "group": "presences", - "weight": 418, "cookies": false, "type": "", "demo": "presences\/get.md", @@ -28542,7 +28665,6 @@ "x-appwrite": { "method": "upsert", "group": "presences", - "weight": 416, "cookies": false, "type": "", "demo": "presences\/upsert.md", @@ -28618,19 +28740,16 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "status": { "type": "string", "description": "Presence status.", - "default": null, "x-example": "<STATUS>" }, "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" @@ -28639,7 +28758,6 @@ "expiresAt": { "type": "string", "description": "Presence expiry datetime.", - "default": null, "x-example": "2020-10-15T06:38:00.000+00:00", "format": "datetime" }, @@ -28682,7 +28800,6 @@ "x-appwrite": { "method": "update", "group": "presences", - "weight": 420, "cookies": false, "type": "", "demo": "presences\/update.md", @@ -28758,19 +28875,16 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "status": { "type": "string", "description": "Presence status.", - "default": null, "x-example": "<STATUS>" }, "expiresAt": { "type": "string", "description": "Presence expiry datetime.", - "default": null, "x-example": "2020-10-15T06:38:00.000+00:00", "format": "datetime" }, @@ -28783,7 +28897,6 @@ "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" @@ -28820,7 +28933,6 @@ "x-appwrite": { "method": "delete", "group": "presences", - "weight": 421, "cookies": false, "type": "", "demo": "presences\/delete.md", @@ -28883,7 +28995,6 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 1109, "cookies": false, "type": "", "demo": "project\/get.md", @@ -28929,7 +29040,6 @@ "x-appwrite": { "method": "delete", "group": null, - "weight": 1108, "cookies": false, "type": "", "demo": "project\/delete.md", @@ -28982,7 +29092,6 @@ "x-appwrite": { "method": "updateAuthMethod", "group": null, - "weight": 1158, "cookies": false, "type": "", "demo": "project\/update-auth-method.md", @@ -29024,7 +29133,6 @@ "phone" ], "x-enum-name": "ProjectAuthMethodId", - "x-enum-keys": [], "in": "path" }, { @@ -29036,7 +29144,6 @@ "enabled": { "type": "boolean", "description": "Auth method status.", - "default": null, "x-example": false } }, @@ -29072,7 +29179,6 @@ "x-appwrite": { "method": "listKeys", "group": "keys", - "weight": 1125, "cookies": false, "type": "", "demo": "project\/list-keys.md", @@ -29146,7 +29252,6 @@ "x-appwrite": { "method": "createKey", "group": "keys", - "weight": 1123, "cookies": false, "type": "", "demo": "project\/create-key.md", @@ -29181,19 +29286,16 @@ "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": null, "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, "items": { "type": "string", @@ -29293,14 +29395,12 @@ "events.read", "usage.read" ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [] + "x-enum-name": "ProjectKeyScopes" } }, "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -29342,7 +29442,6 @@ "x-appwrite": { "method": "createEphemeralKey", "group": "keys", - "weight": 1124, "cookies": false, "type": "", "demo": "project\/create-ephemeral-key.md", @@ -29377,7 +29476,6 @@ "scopes": { "type": "array", "description": "Key scopes list. Maximum of 100 scopes are allowed.", - "default": null, "x-example": null, "items": { "type": "string", @@ -29477,14 +29575,12 @@ "events.read", "usage.read" ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [] + "x-enum-name": "ProjectKeyScopes" } }, "duration": { "type": "integer", "description": "Time in seconds before ephemeral key expires. Maximum duration is 3600 seconds.", - "default": null, "x-example": "600", "format": "int32" } @@ -29522,7 +29618,6 @@ "x-appwrite": { "method": "getKey", "group": "keys", - "weight": 1126, "cookies": false, "type": "", "demo": "project\/get-key.md", @@ -29583,7 +29678,6 @@ "x-appwrite": { "method": "updateKey", "group": "keys", - "weight": 1128, "cookies": false, "type": "", "demo": "project\/update-key.md", @@ -29626,13 +29720,11 @@ "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", @@ -29732,14 +29824,12 @@ "events.read", "usage.read" ], - "x-enum-name": "ProjectKeyScopes", - "x-enum-keys": [] + "x-enum-name": "ProjectKeyScopes" } }, "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -29773,7 +29863,6 @@ "x-appwrite": { "method": "deleteKey", "group": "keys", - "weight": 1127, "cookies": false, "type": "", "demo": "project\/delete-key.md", @@ -29836,7 +29925,6 @@ "x-appwrite": { "method": "updateLabels", "group": null, - "weight": 1110, "cookies": false, "type": "", "demo": "project\/update-labels.md", @@ -29871,7 +29959,6 @@ "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" @@ -29910,7 +29997,6 @@ "x-appwrite": { "method": "listMockPhones", "group": "mocks", - "weight": 1143, "cookies": false, "type": "", "demo": "project\/list-mock-phones.md", @@ -29984,7 +30070,6 @@ "x-appwrite": { "method": "createMockPhone", "group": "mocks", - "weight": 1142, "cookies": false, "type": "", "demo": "project\/create-mock-phone.md", @@ -30019,14 +30104,12 @@ "number": { "type": "string", "description": "Phone number to associate with the mock phone. Must be a valid E.164 formatted phone number.", - "default": null, "x-example": "+12065550100", "format": "phone" }, "otp": { "type": "string", "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "default": null, "x-example": "<OTP>" } }, @@ -30063,7 +30146,6 @@ "x-appwrite": { "method": "getMockPhone", "group": "mocks", - "weight": 1144, "cookies": false, "type": "", "demo": "project\/get-mock-phone.md", @@ -30125,7 +30207,6 @@ "x-appwrite": { "method": "updateMockPhone", "group": "mocks", - "weight": 1145, "cookies": false, "type": "", "demo": "project\/update-mock-phone.md", @@ -30169,7 +30250,6 @@ "otp": { "type": "string", "description": "One-time password (OTP) to associate with the mock phone. Must be a 6-digit numeric code.", - "default": null, "x-example": "<OTP>" } }, @@ -30200,7 +30280,6 @@ "x-appwrite": { "method": "deleteMockPhone", "group": "mocks", - "weight": 1146, "cookies": false, "type": "", "demo": "project\/delete-mock-phone.md", @@ -30262,7 +30341,6 @@ "x-appwrite": { "method": "listOAuth2Providers", "group": "oauth2", - "weight": 1159, "cookies": false, "type": "", "demo": "project\/list-o-auth-2-providers.md", @@ -30338,7 +30416,6 @@ "x-appwrite": { "method": "updateOAuth2Amazon", "group": "oauth2", - "weight": 1186, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-amazon.md", @@ -30373,21 +30450,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Amazon OAuth2 app. For example: amzn1.application-oa2-client.87400c00000000000000000000063d5b2", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Amazon OAuth2 app. For example: 79ffe4000000000000000000000000000000000000000000000000000002de55", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -30423,7 +30497,6 @@ "x-appwrite": { "method": "updateOAuth2Apple", "group": "oauth2", - "weight": 1201, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-apple.md", @@ -30458,35 +30531,30 @@ "serviceId": { "type": "string", "description": "'Service ID' of Apple OAuth2 app. For example: ip.appwrite.app.web", - "default": null, "x-example": "<SERVICE_ID>", "x-nullable": true }, "keyId": { "type": "string", "description": "'Key ID' of Apple OAuth2 app. For example: P4000000N8", - "default": null, "x-example": "<KEY_ID>", "x-nullable": true }, "teamId": { "type": "string", "description": "'Team ID' of Apple OAuth2 app. For example: D4000000R6", - "default": null, "x-example": "<TEAM_ID>", "x-nullable": true }, "p8File": { "type": "string", "description": "Contents of the Apple OAuth2 app .p8 private key file. The secret key wrapped by the PEM markers is 200 characters long. For example: -----BEGIN PRIVATE KEY-----MIGTAg...jy2Xbna-----END PRIVATE KEY-----", - "default": null, "x-example": "<P8_FILE>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -30522,7 +30590,6 @@ "x-appwrite": { "method": "updateOAuth2Auth0", "group": "oauth2", - "weight": 1195, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-auth-0.md", @@ -30557,28 +30624,24 @@ "clientId": { "type": "string", "description": "'Client ID' of Auth0 OAuth2 app. For example: OaOkIA000000000000000000005KLSYq", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Auth0 OAuth2 app. For example: zXz0000-00000000000000000000000000000-00000000000000000000PJafnF", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "endpoint": { "type": "string", "description": "Domain of Auth0 instance. For example: example.us.auth0.com", - "default": null, "x-example": "<ENDPOINT>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -30614,7 +30677,6 @@ "x-appwrite": { "method": "updateOAuth2Authentik", "group": "oauth2", - "weight": 1194, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-authentik.md", @@ -30649,28 +30711,24 @@ "clientId": { "type": "string", "description": "'Client ID' of Authentik OAuth2 app. For example: dTKOPa0000000000000000000000000000e7G8hv", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Authentik OAuth2 app. For example: ntQadq000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Hp5WK", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "endpoint": { "type": "string", "description": "Domain of Authentik instance. For example: example.authentik.com", - "default": null, "x-example": "<ENDPOINT>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -30706,7 +30764,6 @@ "x-appwrite": { "method": "updateOAuth2Autodesk", "group": "oauth2", - "weight": 1169, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-autodesk.md", @@ -30741,21 +30798,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Autodesk OAuth2 app. For example: 5zw90v00000000000000000000kVYXN7", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Autodesk OAuth2 app. For example: 7I000000000000MW", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -30791,7 +30845,6 @@ "x-appwrite": { "method": "updateOAuth2Bitbucket", "group": "oauth2", - "weight": 1166, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-bitbucket.md", @@ -30826,21 +30879,18 @@ "key": { "type": "string", "description": "'Key' of Bitbucket OAuth2 app. For example: Knt70000000000ByRc", - "default": null, "x-example": "<KEY>", "x-nullable": true }, "secret": { "type": "string", "description": "'Secret' of Bitbucket OAuth2 app. For example: NMfLZJ00000000000000000000TLQdDx", - "default": null, "x-example": "<SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -30876,7 +30926,6 @@ "x-appwrite": { "method": "updateOAuth2Bitly", "group": "oauth2", - "weight": 1167, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-bitly.md", @@ -30911,21 +30960,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Bitly OAuth2 app. For example: d95151000000000000000000000000000067af9b", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Bitly OAuth2 app. For example: a13e250000000000000000000000000000d73095", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -30961,7 +31007,6 @@ "x-appwrite": { "method": "updateOAuth2Box", "group": "oauth2", - "weight": 1168, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-box.md", @@ -30996,21 +31041,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Box OAuth2 app. For example: deglcs00000000000000000000x2og6y", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Box OAuth2 app. For example: OKM1f100000000000000000000eshEif", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -31046,7 +31088,6 @@ "x-appwrite": { "method": "updateOAuth2Dailymotion", "group": "oauth2", - "weight": 1165, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-dailymotion.md", @@ -31081,21 +31122,18 @@ "apiKey": { "type": "string", "description": "'API Key' of Dailymotion OAuth2 app. For example: 07a9000000000000067f", - "default": null, "x-example": "<API_KEY>", "x-nullable": true }, "apiSecret": { "type": "string", "description": "'API Secret' of Dailymotion OAuth2 app. For example: a399a90000000000000000000000000000d90639", - "default": null, "x-example": "<API_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -31131,7 +31169,6 @@ "x-appwrite": { "method": "updateOAuth2Discord", "group": "oauth2", - "weight": 1162, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-discord.md", @@ -31166,21 +31203,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Discord OAuth2 app. For example: 950722000000343754", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Discord OAuth2 app. For example: YmPXnM000000000000000000002zFg5D", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -31216,7 +31250,6 @@ "x-appwrite": { "method": "updateOAuth2Disqus", "group": "oauth2", - "weight": 1185, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-disqus.md", @@ -31251,21 +31284,18 @@ "publicKey": { "type": "string", "description": "'Public Key, also known as API Key' of Disqus OAuth2 app. For example: cgegH70000000000000000000000000000000000000000000000000000Hr1nYX", - "default": null, "x-example": "<PUBLIC_KEY>", "x-nullable": true }, "secretKey": { "type": "string", "description": "'Secret Key, also known as API Secret' of Disqus OAuth2 app. For example: W7Bykj00000000000000000000000000000000000000000000000000003o43w9", - "default": null, "x-example": "<SECRET_KEY>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -31301,7 +31331,6 @@ "x-appwrite": { "method": "updateOAuth2Dropbox", "group": "oauth2", - "weight": 1164, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-dropbox.md", @@ -31336,21 +31365,18 @@ "appKey": { "type": "string", "description": "'App Key' of Dropbox OAuth2 app. For example: jl000000000009t", - "default": null, "x-example": "<APP_KEY>", "x-nullable": true }, "appSecret": { "type": "string", "description": "'App Secret' of Dropbox OAuth2 app. For example: g200000000000vw", - "default": null, "x-example": "<APP_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -31386,7 +31412,6 @@ "x-appwrite": { "method": "updateOAuth2Etsy", "group": "oauth2", - "weight": 1187, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-etsy.md", @@ -31421,21 +31446,18 @@ "keyString": { "type": "string", "description": "'Keystring' of Etsy OAuth2 app. For example: nsgzxh0000000000008j85a2", - "default": null, "x-example": "<KEY_STRING>", "x-nullable": true }, "sharedSecret": { "type": "string", "description": "'Shared Secret' of Etsy OAuth2 app. For example: tp000000ru", - "default": null, "x-example": "<SHARED_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -31471,7 +31493,6 @@ "x-appwrite": { "method": "updateOAuth2Facebook", "group": "oauth2", - "weight": 1188, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-facebook.md", @@ -31506,21 +31527,18 @@ "appId": { "type": "string", "description": "'App ID' of Facebook OAuth2 app. For example: 260600000007694", - "default": null, "x-example": "<APP_ID>", "x-nullable": true }, "appSecret": { "type": "string", "description": "'App Secret' of Facebook OAuth2 app. For example: 2d0b2800000000000000000000d38af4", - "default": null, "x-example": "<APP_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -31556,7 +31574,6 @@ "x-appwrite": { "method": "updateOAuth2Figma", "group": "oauth2", - "weight": 1163, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-figma.md", @@ -31591,21 +31608,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Figma OAuth2 app. For example: byay5H0000000000VtiI40", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Figma OAuth2 app. For example: yEpOYn0000000000000000004iIsU5", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -31641,7 +31655,6 @@ "x-appwrite": { "method": "updateOAuth2FusionAuth", "group": "oauth2", - "weight": 1196, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-fusion-auth.md", @@ -31676,28 +31689,24 @@ "clientId": { "type": "string", "description": "'Client ID' of FusionAuth OAuth2 app. For example: b2222c00-0000-0000-0000-000000862097", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of FusionAuth OAuth2 app. For example: Jx4s0C0000000000000000000000000000000wGqLsc", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "endpoint": { "type": "string", "description": "Domain of FusionAuth instance. For example: example.fusionauth.io", - "default": null, "x-example": "<ENDPOINT>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -31733,7 +31742,6 @@ "x-appwrite": { "method": "updateOAuth2GitHub", "group": "oauth2", - "weight": 1161, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-git-hub.md", @@ -31768,21 +31776,18 @@ "clientId": { "type": "string", "description": "'OAuth2 app Client ID, or App ID' of GitHub OAuth2 app. For example: e4d87900000000540733. Example of wrong value: 370006", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of GitHub OAuth2 app. For example: 5e07c00000000000000000000000000000198bcc", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -31818,7 +31823,6 @@ "x-appwrite": { "method": "updateOAuth2Gitlab", "group": "oauth2", - "weight": 1193, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-gitlab.md", @@ -31853,21 +31857,18 @@ "applicationId": { "type": "string", "description": "'Application ID' of Gitlab OAuth2 app. For example: d41ffe0000000000000000000000000000000000000000000000000000d5e252", - "default": null, "x-example": "<APPLICATION_ID>", "x-nullable": true }, "secret": { "type": "string", "description": "'Secret' of Gitlab OAuth2 app. For example: gloas-838cfa0000000000000000000000000000000000000000000000000000ecbb38", - "default": null, "x-example": "<SECRET>", "x-nullable": true }, "endpoint": { "type": "string", "description": "Endpoint URL of self-hosted GitLab instance. For example: https:\/\/gitlab.com", - "default": null, "x-example": "https:\/\/example.com", "format": "url", "x-nullable": true @@ -31875,7 +31876,6 @@ "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -31911,7 +31911,6 @@ "x-appwrite": { "method": "updateOAuth2Google", "group": "oauth2", - "weight": 1170, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-google.md", @@ -31946,21 +31945,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Google OAuth2 app. For example: 120000000095-92ifjb00000000000000000000g7ijfb.apps.googleusercontent.com", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Google OAuth2 app. For example: GOCSPX-2k8gsR0000000000000000VNahJj", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "prompt": { "type": "array", "description": "Array of Google OAuth2 prompt values. If \"none\" is included, it must be the only element. \"none\" means: don't display any authentication or consent screens. Must not be specified with other values. \"consent\" means: prompt the user for consent. \"select_account\" means: prompt the user to select an account.", - "default": null, "x-example": null, "x-nullable": true, "items": { @@ -31970,14 +31966,12 @@ "consent", "select_account" ], - "x-enum-name": "ProjectOAuth2GooglePrompt", - "x-enum-keys": [] + "x-enum-name": "ProjectOAuth2GooglePrompt" } }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -32013,7 +32007,6 @@ "x-appwrite": { "method": "updateOAuth2Keycloak", "group": "oauth2", - "weight": 1197, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-keycloak.md", @@ -32048,35 +32041,30 @@ "clientId": { "type": "string", "description": "'Client ID' of Keycloak OAuth2 app. For example: appwrite-o0000000st-app", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Keycloak OAuth2 app. For example: jdjrJd00000000000000000000HUsaZO", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "endpoint": { "type": "string", "description": "Domain of Keycloak instance. For example: keycloak.example.com", - "default": null, "x-example": "<ENDPOINT>", "x-nullable": true }, "realmName": { "type": "string", "description": "Keycloak realm name. For example: appwrite-realm", - "default": null, "x-example": "<REALM_NAME>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -32112,7 +32100,6 @@ "x-appwrite": { "method": "updateOAuth2Kick", "group": "oauth2", - "weight": 1200, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-kick.md", @@ -32147,21 +32134,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Kick OAuth2 app. For example: 01KQ7C00000000000001MFHS32", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Kick OAuth2 app. For example: 34ac5600000000000000000000000000000000000000000000000000e830c8b", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -32197,7 +32181,6 @@ "x-appwrite": { "method": "updateOAuth2Linkedin", "group": "oauth2", - "weight": 1184, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-linkedin.md", @@ -32232,21 +32215,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Linkedin OAuth2 app. For example: 770000000000dv", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "primaryClientSecret": { "type": "string", "description": "'Primary Client Secret or Secondary Client Secret' of Linkedin OAuth2 app. For example: WPL_AP1.2Bf0000000000000.\/HtlYw==", - "default": null, "x-example": "<PRIMARY_CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -32282,7 +32262,6 @@ "x-appwrite": { "method": "updateOAuth2Microsoft", "group": "oauth2", - "weight": 1202, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-microsoft.md", @@ -32317,28 +32296,24 @@ "applicationId": { "type": "string", "description": "'Entra ID Application ID, also known as Client ID' of Microsoft OAuth2 app. For example: 00001111-aaaa-2222-bbbb-3333cccc4444", - "default": null, "x-example": "<APPLICATION_ID>", "x-nullable": true }, "applicationSecret": { "type": "string", "description": "'Entra ID Application Secret, also known as Client Secret' of Microsoft OAuth2 app. For example: A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u", - "default": null, "x-example": "<APPLICATION_SECRET>", "x-nullable": true }, "tenant": { "type": "string", "description": "Microsoft Entra ID tenant identifier. Use 'common', 'organizations', 'consumers' or a specific tenant ID. For example: common", - "default": null, "x-example": "<TENANT>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -32374,7 +32349,6 @@ "x-appwrite": { "method": "updateOAuth2Notion", "group": "oauth2", - "weight": 1181, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-notion.md", @@ -32409,21 +32383,18 @@ "oauthClientId": { "type": "string", "description": "'OAuth Client ID' of Notion OAuth2 app. For example: 341d8700-0000-0000-0000-000000446ee3", - "default": null, "x-example": "<OAUTH_CLIENT_ID>", "x-nullable": true }, "oauthClientSecret": { "type": "string", "description": "'OAuth Client Secret' of Notion OAuth2 app. For example: secret_dLUr4b000000000000000000000000000000lFHAa9", - "default": null, "x-example": "<OAUTH_CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -32459,7 +32430,6 @@ "x-appwrite": { "method": "updateOAuth2Oidc", "group": "oauth2", - "weight": 1198, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-oidc.md", @@ -32494,21 +32464,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Oidc OAuth2 app. For example: qibI2x0000000000000000000000000006L2YFoG", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Oidc OAuth2 app. For example: Ah68ed000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003qpcHV", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "wellKnownURL": { "type": "string", "description": "OpenID Connect well-known configuration URL. When provided, authorization, token, and user info endpoints can be discovered automatically. For example: https:\/\/myoauth.com\/.well-known\/openid-configuration", - "default": null, "x-example": "https:\/\/example.com", "format": "url", "x-nullable": true @@ -32516,7 +32483,6 @@ "authorizationURL": { "type": "string", "description": "OpenID Connect authorization endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/authorize", - "default": null, "x-example": "https:\/\/example.com", "format": "url", "x-nullable": true @@ -32524,7 +32490,6 @@ "tokenURL": { "type": "string", "description": "OpenID Connect token endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/token", - "default": null, "x-example": "https:\/\/example.com", "format": "url", "x-nullable": true @@ -32532,7 +32497,6 @@ "userInfoURL": { "type": "string", "description": "OpenID Connect user info endpoint URL. Required when wellKnownURL is not provided. For example: https:\/\/myoauth.com\/oauth2\/userinfo", - "default": null, "x-example": "https:\/\/example.com", "format": "url", "x-nullable": true @@ -32540,7 +32504,6 @@ "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -32576,7 +32539,6 @@ "x-appwrite": { "method": "updateOAuth2Okta", "group": "oauth2", - "weight": 1199, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-okta.md", @@ -32611,35 +32573,30 @@ "clientId": { "type": "string", "description": "'Client ID' of Okta OAuth2 app. For example: 0oa00000000000000698", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Okta OAuth2 app. For example: Kiq0000000000000000000000000000000000000-00000000000H2L5-3SJ-vRV", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "domain": { "type": "string", "description": "Okta company domain. Required when enabling the provider. For example: trial-6400025.okta.com. Example of wrong value: trial-6400025-admin.okta.com, or https:\/\/trial-6400025.okta.com\/", - "default": null, "x-example": null, "x-nullable": true }, "authorizationServerId": { "type": "string", "description": "Custom Authorization Servers. Optional, can be left empty or unconfigured. For example: aus000000000000000h7z", - "default": null, "x-example": "<AUTHORIZATION_SERVER_ID>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -32675,7 +32632,6 @@ "x-appwrite": { "method": "updateOAuth2Paypal", "group": "oauth2", - "weight": 1191, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-paypal.md", @@ -32710,21 +32666,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Paypal OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "secretKey": { "type": "string", "description": "'Secret Key 1 or Secret Key 2' of Paypal OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "default": null, "x-example": "<SECRET_KEY>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -32760,7 +32713,6 @@ "x-appwrite": { "method": "updateOAuth2PaypalSandbox", "group": "oauth2", - "weight": 1192, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-paypal-sandbox.md", @@ -32795,21 +32747,18 @@ "clientId": { "type": "string", "description": "'Client ID' of PaypalSandbox OAuth2 app. For example: AdhIEG7-000000000000-0000000000000000000000000000000-0000000000000000000000-2pyB", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "secretKey": { "type": "string", "description": "'Secret Key 1 or Secret Key 2' of PaypalSandbox OAuth2 app. For example: EH8KCXtew--000000000000000000000000000000000000000_C-1_5UP_000000000000000CB7KDp", - "default": null, "x-example": "<SECRET_KEY>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -32845,7 +32794,6 @@ "x-appwrite": { "method": "updateOAuth2Podio", "group": "oauth2", - "weight": 1180, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-podio.md", @@ -32880,21 +32828,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Podio OAuth2 app. For example: appwrite-o0000000st-app", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Podio OAuth2 app. For example: Rn247T0000000000000000000000000000000000000000000000000000W2zWTN", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -32930,7 +32875,6 @@ "x-appwrite": { "method": "updateOAuth2Salesforce", "group": "oauth2", - "weight": 1182, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-salesforce.md", @@ -32965,21 +32909,18 @@ "customerKey": { "type": "string", "description": "'Consumer Key' of Salesforce OAuth2 app. For example: 3MVG9I0000000000000000000000000000000000000000000000000000000000000000000000000C5Aejq", - "default": null, "x-example": "<CUSTOMER_KEY>", "x-nullable": true }, "customerSecret": { "type": "string", "description": "'Consumer Secret' of Salesforce OAuth2 app. For example: 3w000000000000e2", - "default": null, "x-example": "<CUSTOMER_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33015,7 +32956,6 @@ "x-appwrite": { "method": "updateOAuth2Slack", "group": "oauth2", - "weight": 1179, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-slack.md", @@ -33050,21 +32990,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Slack OAuth2 app. For example: 23000000089.15000000000023", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Slack OAuth2 app. For example: 81656000000000000000000000f3d2fd", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33100,7 +33037,6 @@ "x-appwrite": { "method": "updateOAuth2Spotify", "group": "oauth2", - "weight": 1178, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-spotify.md", @@ -33135,21 +33071,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Spotify OAuth2 app. For example: 6ec271000000000000000000009beace", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Spotify OAuth2 app. For example: db068a000000000000000000008b5b9f", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33185,7 +33118,6 @@ "x-appwrite": { "method": "updateOAuth2Stripe", "group": "oauth2", - "weight": 1177, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-stripe.md", @@ -33220,21 +33152,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Stripe OAuth2 app. For example: ca_UKibXX0000000000000000000006byvR", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "apiSecretKey": { "type": "string", "description": "'API Secret Key' of Stripe OAuth2 app. For example: sk_51SfOd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000QGWYfp", - "default": null, "x-example": "<API_SECRET_KEY>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33270,7 +33199,6 @@ "x-appwrite": { "method": "updateOAuth2Tradeshift", "group": "oauth2", - "weight": 1189, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-tradeshift.md", @@ -33305,21 +33233,18 @@ "oauth2ClientId": { "type": "string", "description": "'OAuth2 Client ID' of Tradeshift OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "default": null, "x-example": "<OAUTH2_CLIENT_ID>", "x-nullable": true }, "oauth2ClientSecret": { "type": "string", "description": "'OAuth2 Client Secret' of Tradeshift OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "default": null, "x-example": "<OAUTH2_CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33355,7 +33280,6 @@ "x-appwrite": { "method": "updateOAuth2TradeshiftSandbox", "group": "oauth2", - "weight": 1190, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-tradeshift-sandbox.md", @@ -33390,21 +33314,18 @@ "oauth2ClientId": { "type": "string", "description": "'OAuth2 Client ID' of Tradeshift Sandbox OAuth2 app. For example: appwrite-tes00000.0000000000est-app", - "default": null, "x-example": "<OAUTH2_CLIENT_ID>", "x-nullable": true }, "oauth2ClientSecret": { "type": "string", "description": "'OAuth2 Client Secret' of Tradeshift Sandbox OAuth2 app. For example: 7cb52700-0000-0000-0000-000000ca5b83", - "default": null, "x-example": "<OAUTH2_CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33440,7 +33361,6 @@ "x-appwrite": { "method": "updateOAuth2Twitch", "group": "oauth2", - "weight": 1176, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-twitch.md", @@ -33475,21 +33395,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Twitch OAuth2 app. For example: vvi0in000000000000000000ikmt9p", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Twitch OAuth2 app. For example: pmapue000000000000000000zylw3v", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33525,7 +33442,6 @@ "x-appwrite": { "method": "updateOAuth2WordPress", "group": "oauth2", - "weight": 1175, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-word-press.md", @@ -33560,21 +33476,18 @@ "clientId": { "type": "string", "description": "'Client ID' of WordPress OAuth2 app. For example: 130005", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of WordPress OAuth2 app. For example: PlBfJS0000000000000000000000000000000000000000000000000000EdUZJk", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33610,7 +33523,6 @@ "x-appwrite": { "method": "updateOAuth2X", "group": "oauth2", - "weight": 1174, "cookies": false, "type": "", "demo": "project\/update-o-auth-2x.md", @@ -33645,21 +33557,18 @@ "customerKey": { "type": "string", "description": "'Customer Key' of X OAuth2 app. For example: slzZV0000000000000NFLaWT", - "default": null, "x-example": "<CUSTOMER_KEY>", "x-nullable": true }, "secretKey": { "type": "string", "description": "'Secret Key' of X OAuth2 app. For example: tkEPkp00000000000000000000000000000000000000FTxbI9", - "default": null, "x-example": "<SECRET_KEY>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33695,7 +33604,6 @@ "x-appwrite": { "method": "updateOAuth2Yahoo", "group": "oauth2", - "weight": 1183, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-yahoo.md", @@ -33730,21 +33638,18 @@ "clientId": { "type": "string", "description": "'Client ID, also known as Customer Key' of Yahoo OAuth2 app. For example: dj0yJm000000000000000000000000000000000000000000000000000000000000000000000000000000000000Z4PWRm", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret, also known as Customer Secret' of Yahoo OAuth2 app. For example: cf978f0000000000000000000000000000c5e2e9", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33780,7 +33685,6 @@ "x-appwrite": { "method": "updateOAuth2Yandex", "group": "oauth2", - "weight": 1173, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-yandex.md", @@ -33815,21 +33719,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Yandex OAuth2 app. For example: 6a8a6a0000000000000000000091483c", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Yandex OAuth2 app. For example: bbf98500000000000000000000c75a63", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33865,7 +33766,6 @@ "x-appwrite": { "method": "updateOAuth2Zoho", "group": "oauth2", - "weight": 1172, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-zoho.md", @@ -33900,21 +33800,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Zoho OAuth2 app. For example: 1000.83C178000000000000000000RPNX0B", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Zoho OAuth2 app. For example: fb5cac000000000000000000000000000000a68f6e", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -33950,7 +33847,6 @@ "x-appwrite": { "method": "updateOAuth2Zoom", "group": "oauth2", - "weight": 1171, "cookies": false, "type": "", "demo": "project\/update-o-auth-2-zoom.md", @@ -33985,21 +33881,18 @@ "clientId": { "type": "string", "description": "'Client ID' of Zoom OAuth2 app. For example: QMAC00000000000000w0AQ", - "default": null, "x-example": "<CLIENT_ID>", "x-nullable": true }, "clientSecret": { "type": "string", "description": "'Client Secret' of Zoom OAuth2 app. For example: GAWsG4000000000000000000007U01ON", - "default": null, "x-example": "<CLIENT_SECRET>", "x-nullable": true }, "enabled": { "type": "boolean", "description": "OAuth2 sign-in method status. Set to true to enable new session creation. Setting to true will trigger end-to-end credentials validation, and will throw if the credentials are invalid.", - "default": null, "x-example": false, "x-nullable": true } @@ -34201,7 +34094,6 @@ "x-appwrite": { "method": "getOAuth2Provider", "group": "oauth2", - "weight": 1160, "cookies": false, "type": "", "demo": "project\/get-o-auth-2-provider.md", @@ -34276,12 +34168,9 @@ "yammer", "yandex", "zoho", - "zoom", - "githubImagine", - "googleImagine" + "zoom" ], "x-enum-name": "ProjectOAuthProviderId", - "x-enum-keys": [], "in": "path" } ] @@ -34311,7 +34200,6 @@ "x-appwrite": { "method": "listPlatforms", "group": "platforms", - "weight": 1129, "cookies": false, "type": "", "demo": "project\/list-platforms.md", @@ -34387,7 +34275,6 @@ "x-appwrite": { "method": "createAndroidPlatform", "group": "platforms", - "weight": 1133, "cookies": false, "type": "", "demo": "project\/create-android-platform.md", @@ -34422,19 +34309,16 @@ "platformId": { "type": "string", "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" }, "name": { "type": "string", "description": "Platform name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "applicationId": { "type": "string", "description": "Android application ID. Max length: 256 chars.", - "default": null, "x-example": "<APPLICATION_ID>" } }, @@ -34474,7 +34358,6 @@ "x-appwrite": { "method": "updateAndroidPlatform", "group": "platforms", - "weight": 1138, "cookies": false, "type": "", "demo": "project\/update-android-platform.md", @@ -34517,13 +34400,11 @@ "name": { "type": "string", "description": "Platform name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "applicationId": { "type": "string", "description": "Android application ID. Max length: 256 chars.", - "default": null, "x-example": "<APPLICATION_ID>" } }, @@ -34562,7 +34443,6 @@ "x-appwrite": { "method": "createApplePlatform", "group": "platforms", - "weight": 1132, "cookies": false, "type": "", "demo": "project\/create-apple-platform.md", @@ -34597,19 +34477,16 @@ "platformId": { "type": "string", "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" }, "name": { "type": "string", "description": "Platform name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "bundleIdentifier": { "type": "string", "description": "Apple bundle identifier. Max length: 256 chars.", - "default": null, "x-example": "<BUNDLE_IDENTIFIER>" } }, @@ -34649,7 +34526,6 @@ "x-appwrite": { "method": "updateApplePlatform", "group": "platforms", - "weight": 1137, "cookies": false, "type": "", "demo": "project\/update-apple-platform.md", @@ -34692,13 +34568,11 @@ "name": { "type": "string", "description": "Platform name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "bundleIdentifier": { "type": "string", "description": "Apple bundle identifier. Max length: 256 chars.", - "default": null, "x-example": "<BUNDLE_IDENTIFIER>" } }, @@ -34737,7 +34611,6 @@ "x-appwrite": { "method": "createLinuxPlatform", "group": "platforms", - "weight": 1135, "cookies": false, "type": "", "demo": "project\/create-linux-platform.md", @@ -34772,19 +34645,16 @@ "platformId": { "type": "string", "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" }, "name": { "type": "string", "description": "Platform name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "packageName": { "type": "string", "description": "Linux package name. Max length: 256 chars.", - "default": null, "x-example": "<PACKAGE_NAME>" } }, @@ -34824,7 +34694,6 @@ "x-appwrite": { "method": "updateLinuxPlatform", "group": "platforms", - "weight": 1140, "cookies": false, "type": "", "demo": "project\/update-linux-platform.md", @@ -34867,13 +34736,11 @@ "name": { "type": "string", "description": "Platform name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "packageName": { "type": "string", "description": "Linux package name. Max length: 256 chars.", - "default": null, "x-example": "<PACKAGE_NAME>" } }, @@ -34912,7 +34779,6 @@ "x-appwrite": { "method": "createWebPlatform", "group": "platforms", - "weight": 1131, "cookies": false, "type": "", "demo": "project\/create-web-platform.md", @@ -34947,19 +34813,16 @@ "platformId": { "type": "string", "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" }, "name": { "type": "string", "description": "Platform name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "hostname": { "type": "string", "description": "Platform web hostname. Max length: 256 chars.", - "default": null, "x-example": "app.example.com" } }, @@ -34999,7 +34862,6 @@ "x-appwrite": { "method": "updateWebPlatform", "group": "platforms", - "weight": 1136, "cookies": false, "type": "", "demo": "project\/update-web-platform.md", @@ -35042,13 +34904,11 @@ "name": { "type": "string", "description": "Platform name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "hostname": { "type": "string", "description": "Platform web hostname. Max length: 256 chars.", - "default": null, "x-example": "app.example.com" } }, @@ -35087,7 +34947,6 @@ "x-appwrite": { "method": "createWindowsPlatform", "group": "platforms", - "weight": 1134, "cookies": false, "type": "", "demo": "project\/create-windows-platform.md", @@ -35122,19 +34981,16 @@ "platformId": { "type": "string", "description": "Platform ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<PLATFORM_ID>" }, "name": { "type": "string", "description": "Platform name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "packageIdentifierName": { "type": "string", "description": "Windows package identifier name. Max length: 256 chars.", - "default": null, "x-example": "<PACKAGE_IDENTIFIER_NAME>" } }, @@ -35174,7 +35030,6 @@ "x-appwrite": { "method": "updateWindowsPlatform", "group": "platforms", - "weight": 1139, "cookies": false, "type": "", "demo": "project\/update-windows-platform.md", @@ -35217,13 +35072,11 @@ "name": { "type": "string", "description": "Platform name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "packageIdentifierName": { "type": "string", "description": "Windows package identifier name. Max length: 256 chars.", - "default": null, "x-example": "<PACKAGE_IDENTIFIER_NAME>" } }, @@ -35286,7 +35139,6 @@ "x-appwrite": { "method": "getPlatform", "group": "platforms", - "weight": 1130, "cookies": false, "type": "", "demo": "project\/get-platform.md", @@ -35342,7 +35194,6 @@ "x-appwrite": { "method": "deletePlatform", "group": "platforms", - "weight": 1141, "cookies": false, "type": "", "demo": "project\/delete-platform.md", @@ -35403,7 +35254,6 @@ "x-appwrite": { "method": "listPolicies", "group": "policies", - "weight": 1147, "cookies": false, "type": "", "demo": "project\/list-policies.md", @@ -35482,7 +35332,6 @@ "x-appwrite": { "method": "updateDenyAliasedEmailPolicy", "group": "policies", - "weight": 1203, "cookies": false, "type": "", "demo": "project\/update-deny-aliased-email-policy.md", @@ -35520,7 +35369,6 @@ "enabled": { "type": "boolean", "description": "Set whether or not to block aliased emails during signup and email updates.", - "default": null, "x-example": false } }, @@ -35558,7 +35406,6 @@ "x-appwrite": { "method": "updateDenyDisposableEmailPolicy", "group": "policies", - "weight": 1204, "cookies": false, "type": "", "demo": "project\/update-deny-disposable-email-policy.md", @@ -35596,7 +35443,6 @@ "enabled": { "type": "boolean", "description": "Set whether or not to block disposable email addresses during signup and email updates.", - "default": null, "x-example": false } }, @@ -35634,7 +35480,6 @@ "x-appwrite": { "method": "updateDenyFreeEmailPolicy", "group": "policies", - "weight": 1205, "cookies": false, "type": "", "demo": "project\/update-deny-free-email-policy.md", @@ -35672,7 +35517,6 @@ "enabled": { "type": "boolean", "description": "Set whether or not to block free email addresses during signup and email updates.", - "default": null, "x-example": false } }, @@ -35710,7 +35554,6 @@ "x-appwrite": { "method": "updateMembershipPrivacyPolicy", "group": "policies", - "weight": 1149, "cookies": false, "type": "", "demo": "project\/update-membership-privacy-policy.md", @@ -35748,31 +35591,26 @@ "userId": { "type": "boolean", "description": "Set to true if you want make user ID visible to all team members, or false to hide it.", - "default": null, "x-example": false }, "userEmail": { "type": "boolean", "description": "Set to true if you want make user email visible to all team members, or false to hide it.", - "default": null, "x-example": false }, "userPhone": { "type": "boolean", "description": "Set to true if you want make user phone number visible to all team members, or false to hide it.", - "default": null, "x-example": false }, "userName": { "type": "boolean", "description": "Set to true if you want make user name visible to all team members, or false to hide it.", - "default": null, "x-example": false }, "userMFA": { "type": "boolean", "description": "Set to true if you want make user MFA status visible to all team members, or false to hide it.", - "default": null, "x-example": false } } @@ -35807,7 +35645,6 @@ "x-appwrite": { "method": "updatePasswordDictionaryPolicy", "group": "policies", - "weight": 1150, "cookies": false, "type": "", "demo": "project\/update-password-dictionary-policy.md", @@ -35845,7 +35682,6 @@ "enabled": { "type": "boolean", "description": "Toggle password dictionary policy. Set to true if you want password change to block passwords in the dictionary, or false to allow them. When changing this policy, existing passwords remain valid.", - "default": null, "x-example": false } }, @@ -35883,7 +35719,6 @@ "x-appwrite": { "method": "updatePasswordHistoryPolicy", "group": "policies", - "weight": 1151, "cookies": false, "type": "", "demo": "project\/update-password-history-policy.md", @@ -35921,7 +35756,6 @@ "total": { "type": "integer", "description": "Set the password history length per user. Value can be between 1 and 5000, or null to disable the limit.", - "default": null, "x-example": 1, "format": "int32", "x-nullable": true @@ -35961,7 +35795,6 @@ "x-appwrite": { "method": "updatePasswordPersonalDataPolicy", "group": "policies", - "weight": 1152, "cookies": false, "type": "", "demo": "project\/update-password-personal-data-policy.md", @@ -35999,7 +35832,6 @@ "enabled": { "type": "boolean", "description": "Toggle password personal data policy. Set to true if you want to block passwords including user's personal data, or false to allow it. When changing this policy, existing passwords remain valid.", - "default": null, "x-example": false } }, @@ -36037,7 +35869,6 @@ "x-appwrite": { "method": "updateSessionAlertPolicy", "group": "policies", - "weight": 1153, "cookies": false, "type": "", "demo": "project\/update-session-alert-policy.md", @@ -36075,7 +35906,6 @@ "enabled": { "type": "boolean", "description": "Toggle session alert policy. Set to true if you want users to receive email notifications when a sessions are created for their users, or false to not send email alerts.", - "default": null, "x-example": false } }, @@ -36113,7 +35943,6 @@ "x-appwrite": { "method": "updateSessionDurationPolicy", "group": "policies", - "weight": 1154, "cookies": false, "type": "", "demo": "project\/update-session-duration-policy.md", @@ -36151,7 +35980,6 @@ "duration": { "type": "integer", "description": "Maximum session length in seconds. Minium allowed value is 5 second, and maximum is 1 year, which is 31536000 seconds.", - "default": null, "x-example": 5, "format": "int32" } @@ -36190,7 +36018,6 @@ "x-appwrite": { "method": "updateSessionInvalidationPolicy", "group": "policies", - "weight": 1155, "cookies": false, "type": "", "demo": "project\/update-session-invalidation-policy.md", @@ -36228,7 +36055,6 @@ "enabled": { "type": "boolean", "description": "Toggle session invalidation policy. Set to true if you want password change to invalidate all sessions of an user, or false to keep sessions active.", - "default": null, "x-example": false } }, @@ -36266,7 +36092,6 @@ "x-appwrite": { "method": "updateSessionLimitPolicy", "group": "policies", - "weight": 1156, "cookies": false, "type": "", "demo": "project\/update-session-limit-policy.md", @@ -36304,7 +36129,6 @@ "total": { "type": "integer", "description": "Set the maximum number of sessions allowed per user. Value can be between 1 and 5000, or null to disable the limit.", - "default": null, "x-example": 1, "format": "int32", "x-nullable": true @@ -36344,7 +36168,6 @@ "x-appwrite": { "method": "updateUserLimitPolicy", "group": "policies", - "weight": 1157, "cookies": false, "type": "", "demo": "project\/update-user-limit-policy.md", @@ -36382,7 +36205,6 @@ "total": { "type": "integer", "description": "Set the maximum number of users allowed in the project. Value can be between 1 and 5000, or null to disable the limit.", - "default": null, "x-example": 1, "format": "int32", "x-nullable": true @@ -36462,7 +36284,6 @@ "x-appwrite": { "method": "getPolicy", "group": "policies", - "weight": 1148, "cookies": false, "type": "", "demo": "project\/get-policy.md", @@ -36509,7 +36330,6 @@ "membership-privacy" ], "x-enum-name": "ProjectPolicyId", - "x-enum-keys": [], "in": "path" } ] @@ -36541,7 +36361,6 @@ "x-appwrite": { "method": "updateProtocol", "group": null, - "weight": 1111, "cookies": false, "type": "", "demo": "project\/update-protocol.md", @@ -36579,7 +36398,6 @@ "websocket" ], "x-enum-name": "ProjectProtocolId", - "x-enum-keys": [], "in": "path" }, { @@ -36591,7 +36409,6 @@ "enabled": { "type": "boolean", "description": "Protocol status.", - "default": null, "x-example": false } }, @@ -36629,7 +36446,6 @@ "x-appwrite": { "method": "updateService", "group": null, - "weight": 1112, "cookies": false, "type": "", "demo": "project\/update-service.md", @@ -36682,7 +36498,6 @@ "advisor" ], "x-enum-name": "ProjectServiceId", - "x-enum-keys": [], "in": "path" }, { @@ -36694,7 +36509,6 @@ "enabled": { "type": "boolean", "description": "Service status.", - "default": null, "x-example": false } }, @@ -36732,7 +36546,6 @@ "x-appwrite": { "method": "updateSMTP", "group": "smtp", - "weight": 1113, "cookies": false, "type": "", "demo": "project\/update-smtp.md", @@ -36767,79 +36580,68 @@ "host": { "type": "string", "description": "SMTP server hostname (domain)", - "default": null, "x-example": null, "x-nullable": true }, "port": { "type": "integer", "description": "SMTP server port", - "default": null, "x-example": null, "format": "int32", "x-nullable": true }, "username": { "type": "string", - "description": "SMTP server username. Leave empty for no authorization.", - "default": null, + "description": "SMTP server username. Pass an empty string to clear a previously set value.", "x-example": "<USERNAME>", "x-nullable": true }, "password": { "type": "string", - "description": "SMTP server password. Leave empty for no authorization. This property is stored securely and cannot be read in future (write-only).", - "default": null, + "description": "SMTP server password. Pass an empty string to clear a previously set value. This property is stored securely and cannot be read in future (write-only).", "x-example": "<PASSWORD>", "x-nullable": true }, "senderEmail": { "type": "string", - "description": "Email address shown in inbox as the sender of the email.", - "default": null, + "description": "Email address shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", "x-example": "email@example.com", "format": "email", "x-nullable": true }, "senderName": { "type": "string", - "description": "Name shown in inbox as the sender of the email.", - "default": null, + "description": "Name shown in inbox as the sender of the email. Pass an empty string to clear a previously set value.", "x-example": "<SENDER_NAME>", "x-nullable": true }, "replyToEmail": { "type": "string", - "description": "Email used when user replies to the email.", - "default": null, + "description": "Email used when user replies to the email. Pass an empty string to clear a previously set value.", "x-example": "email@example.com", "format": "email", "x-nullable": true }, "replyToName": { "type": "string", - "description": "Name used when user replies to the email.", - "default": null, + "description": "Name used when user replies to the email. Pass an empty string to clear a previously set value.", "x-example": "<REPLY_TO_NAME>", "x-nullable": true }, "secure": { "type": "string", "description": "Configures if communication with SMTP server is encrypted. Allowed values are: tls, ssl. Leave empty for no encryption.", - "default": null, "x-example": "tls", "enum": [ "tls", "ssl" ], "x-enum-name": "ProjectSMTPSecure", - "x-enum-keys": [], "x-nullable": true }, "enabled": { "type": "boolean", "description": "Enable or disable custom SMTP. Custom SMTP is useful for branding purposes, but also allows use of custom email templates.", - "default": null, "x-example": false, "x-nullable": true } @@ -36870,7 +36672,6 @@ "x-appwrite": { "method": "createSMTPTest", "group": "smtp", - "weight": 1114, "cookies": false, "type": "", "demo": "project\/create-smtp-test.md", @@ -36905,7 +36706,6 @@ "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" @@ -36944,7 +36744,6 @@ "x-appwrite": { "method": "listEmailTemplates", "group": "templates", - "weight": 1115, "cookies": false, "type": "", "demo": "project\/list-email-templates.md", @@ -37018,7 +36817,6 @@ "x-appwrite": { "method": "updateEmailTemplate", "group": "templates", - "weight": 1117, "cookies": false, "type": "", "demo": "project\/update-email-template.md", @@ -37053,7 +36851,6 @@ "templateId": { "type": "string", "description": "Custom email template type. Can be one of: verification, magicSession, recovery, invitation, mfaChallenge, sessionAlert, otpSession", - "default": null, "x-example": "verification", "enum": [ "verification", @@ -37064,13 +36861,11 @@ "sessionAlert", "otpSession" ], - "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [] + "x-enum-name": "ProjectEmailTemplateId" }, "locale": { "type": "string", "description": "Custom email template locale. If left empty, the fallback locale (en) will be used.", - "default": "", "x-example": "af", "enum": [ "af", @@ -37205,42 +37000,36 @@ "zh-tw", "zu" ], - "x-enum-name": "ProjectEmailTemplateLocale", - "x-enum-keys": [] + "x-enum-name": "ProjectEmailTemplateLocale" }, "subject": { "type": "string", "description": "Subject of the email template. Can be up to 255 characters.", - "default": null, "x-example": "<SUBJECT>", "x-nullable": true }, "message": { "type": "string", "description": "Plain or HTML body of the email template message. Can be up to 10MB of content.", - "default": null, "x-example": "<MESSAGE>", "x-nullable": true }, "senderName": { "type": "string", "description": "Name of the email sender.", - "default": null, "x-example": "<SENDER_NAME>", "x-nullable": true }, "senderEmail": { "type": "string", - "description": "Email of the sender.", - "default": null, + "description": "Email of the sender. Pass an empty string to clear a previously set value.", "x-example": "email@example.com", "format": "email", "x-nullable": true }, "replyToEmail": { "type": "string", - "description": "Reply to email.", - "default": null, + "description": "Reply to email. Pass an empty string to clear a previously set value.", "x-example": "email@example.com", "format": "email", "x-nullable": true @@ -37248,7 +37037,6 @@ "replyToName": { "type": "string", "description": "Reply to name.", - "default": null, "x-example": "<REPLY_TO_NAME>", "x-nullable": true } @@ -37285,7 +37073,6 @@ "x-appwrite": { "method": "getEmailTemplate", "group": "templates", - "weight": 1116, "cookies": false, "type": "", "demo": "project\/get-email-template.md", @@ -37327,7 +37114,6 @@ "otpSession" ], "x-enum-name": "ProjectEmailTemplateId", - "x-enum-keys": [], "in": "path" }, { @@ -37470,8 +37256,6 @@ "zu" ], "x-enum-name": "ProjectEmailTemplateLocale", - "x-enum-keys": [], - "default": "", "in": "query" } ] @@ -37501,7 +37285,6 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 1119, "cookies": false, "type": "", "demo": "project\/list-variables.md", @@ -37575,7 +37358,6 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 1118, "cookies": false, "type": "", "demo": "project\/create-variable.md", @@ -37610,19 +37392,16 @@ "variableId": { "type": "string", "description": "Variable 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": "<VARIABLE_ID>" }, "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": { @@ -37666,7 +37445,6 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 1120, "cookies": false, "type": "", "demo": "project\/get-variable.md", @@ -37727,7 +37505,6 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 1122, "cookies": false, "type": "", "demo": "project\/update-variable.md", @@ -37770,21 +37547,18 @@ "key": { "type": "string", "description": "Variable key. Max length: 255 chars.", - "default": null, "x-example": "<KEY>", "x-nullable": true }, "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 projects can read them during build and runtime.", - "default": null, "x-example": false, "x-nullable": true } @@ -37813,7 +37587,6 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 1121, "cookies": false, "type": "", "demo": "project\/delete-variable.md", @@ -37874,7 +37647,6 @@ "x-appwrite": { "method": "listRules", "group": "rules", - "weight": 1215, "cookies": false, "type": "", "demo": "proxy\/list-rules.md", @@ -37950,7 +37722,6 @@ "x-appwrite": { "method": "createAPIRule", "group": "rules", - "weight": 1210, "cookies": false, "type": "", "demo": "proxy\/create-api-rule.md", @@ -37985,7 +37756,6 @@ "domain": { "type": "string", "description": "Domain name.", - "default": null, "x-example": null } }, @@ -38023,7 +37793,6 @@ "x-appwrite": { "method": "createFunctionRule", "group": "rules", - "weight": 1212, "cookies": false, "type": "", "demo": "proxy\/create-function-rule.md", @@ -38058,13 +37827,11 @@ "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": { @@ -38109,7 +37876,6 @@ "x-appwrite": { "method": "createRedirectRule", "group": "rules", - "weight": 1213, "cookies": false, "type": "", "demo": "proxy\/create-redirect-rule.md", @@ -38144,20 +37910,17 @@ "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", @@ -38165,24 +37928,16 @@ "307", "308" ], - "x-enum-name": null, - "x-enum-keys": [ - "Moved Permanently 301", - "Found 302", - "Temporary Redirect 307", - "Permanent Redirect 308" - ] + "x-enum-name": "RedirectStatusCode" }, "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", @@ -38233,7 +37988,6 @@ "x-appwrite": { "method": "createSiteRule", "group": "rules", - "weight": 1211, "cookies": false, "type": "", "demo": "proxy\/create-site-rule.md", @@ -38268,13 +38022,11 @@ "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": { @@ -38317,7 +38069,6 @@ "x-appwrite": { "method": "getRule", "group": "rules", - "weight": 1214, "cookies": false, "type": "", "demo": "proxy\/get-rule.md", @@ -38373,7 +38124,6 @@ "x-appwrite": { "method": "deleteRule", "group": "rules", - "weight": 1216, "cookies": false, "type": "", "demo": "proxy\/delete-rule.md", @@ -38436,7 +38186,6 @@ "x-appwrite": { "method": "updateRuleStatus", "group": "rules", - "weight": 1217, "cookies": false, "type": "", "demo": "proxy\/update-rule-status.md", @@ -38497,7 +38246,6 @@ "x-appwrite": { "method": "listReports", "group": "reports", - "weight": 695, "cookies": false, "type": "", "demo": "advisor\/list-reports.md", @@ -38507,7 +38255,6 @@ "scope": "reports.read", "platforms": [ "console", - "client", "server" ], "packaging": false, @@ -38515,15 +38262,13 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-reports.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -38575,7 +38320,6 @@ "x-appwrite": { "method": "getReport", "group": "reports", - "weight": 694, "cookies": false, "type": "", "demo": "advisor\/get-report.md", @@ -38585,7 +38329,6 @@ "scope": "reports.read", "platforms": [ "console", - "client", "server" ], "packaging": false, @@ -38593,15 +38336,13 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-report.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -38635,7 +38376,6 @@ "x-appwrite": { "method": "deleteReport", "group": "reports", - "weight": 696, "cookies": false, "type": "", "demo": "advisor\/delete-report.md", @@ -38697,7 +38437,6 @@ "x-appwrite": { "method": "listInsights", "group": "insights", - "weight": 698, "cookies": false, "type": "", "demo": "advisor\/list-insights.md", @@ -38707,7 +38446,6 @@ "scope": "insights.read", "platforms": [ "console", - "client", "server" ], "packaging": false, @@ -38715,15 +38453,13 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/list-insights.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -38783,7 +38519,6 @@ "x-appwrite": { "method": "getInsight", "group": "insights", - "weight": 697, "cookies": false, "type": "", "demo": "advisor\/get-insight.md", @@ -38793,7 +38528,6 @@ "scope": "insights.read", "platforms": [ "console", - "client", "server" ], "packaging": false, @@ -38801,15 +38535,13 @@ "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/advisor\/get-insight.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ @@ -38856,7 +38588,6 @@ "x-appwrite": { "method": "list", "group": "sites", - "weight": 479, "cookies": false, "type": "", "demo": "sites\/list.md", @@ -38939,7 +38670,6 @@ "x-appwrite": { "method": "create", "group": "sites", - "weight": 924, "cookies": false, "type": "", "demo": "sites\/create.md", @@ -38974,19 +38704,16 @@ "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", @@ -39005,8 +38732,7 @@ "vite", "other" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "SiteFramework" }, "enabled": { "type": "boolean", @@ -39054,7 +38780,6 @@ "buildRuntime": { "type": "string", "description": "Runtime to use during build step.", - "default": null, "x-example": "node-14.5", "enum": [ "node-14.5", @@ -39109,6 +38834,7 @@ "dart-3.9", "dart-3.10", "dart-3.11", + "dart-3.12", "dotnet-6.0", "dotnet-7.0", "dotnet-8.0", @@ -39148,22 +38874,20 @@ "flutter-3.32", "flutter-3.35", "flutter-3.38", - "flutter-3.41" + "flutter-3.41", + "flutter-3.44" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "SiteBuildRuntime" }, "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": [] + "x-enum-name": "SiteAdapter" }, "installationId": { "type": "string", @@ -39201,6 +38925,24 @@ "default": "", "x-example": "<PROVIDER_ROOT_DIRECTORY>" }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, "buildSpecification": { "type": "string", "description": "Build specification for the site deployments.", @@ -39256,7 +38998,6 @@ "x-appwrite": { "method": "listFrameworks", "group": "frameworks", - "weight": 482, "cookies": false, "type": "", "demo": "sites\/list-frameworks.md", @@ -39307,7 +39048,6 @@ "x-appwrite": { "method": "listSpecifications", "group": "frameworks", - "weight": 505, "cookies": false, "type": "", "demo": "sites\/list-specifications.md", @@ -39358,7 +39098,6 @@ "x-appwrite": { "method": "get", "group": "sites", - "weight": 478, "cookies": false, "type": "", "demo": "sites\/get.md", @@ -39419,7 +39158,6 @@ "x-appwrite": { "method": "update", "group": "sites", - "weight": 925, "cookies": false, "type": "", "demo": "sites\/update.md", @@ -39462,13 +39200,11 @@ "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", @@ -39487,8 +39223,7 @@ "vite", "other" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "SiteFramework" }, "enabled": { "type": "boolean", @@ -39536,7 +39271,6 @@ "buildRuntime": { "type": "string", "description": "Runtime to use during build step.", - "default": "", "x-example": "node-14.5", "enum": [ "node-14.5", @@ -39591,6 +39325,7 @@ "dart-3.9", "dart-3.10", "dart-3.11", + "dart-3.12", "dotnet-6.0", "dotnet-7.0", "dotnet-8.0", @@ -39630,22 +39365,20 @@ "flutter-3.32", "flutter-3.35", "flutter-3.38", - "flutter-3.41" + "flutter-3.41", + "flutter-3.44" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "SiteBuildRuntime" }, "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": [] + "x-enum-name": "SiteAdapter" }, "fallbackFile": { "type": "string", @@ -39683,6 +39416,24 @@ "default": "", "x-example": "<PROVIDER_ROOT_DIRECTORY>" }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all branches.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns to trigger automatic deployments. Supports wildcards. Leave empty to deploy on all file changes.", + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, "buildSpecification": { "type": "string", "description": "Build specification for the site deployments.", @@ -39731,7 +39482,6 @@ "x-appwrite": { "method": "delete", "group": "sites", - "weight": 481, "cookies": false, "type": "", "demo": "sites\/delete.md", @@ -39794,7 +39544,6 @@ "x-appwrite": { "method": "updateSiteDeployment", "group": "sites", - "weight": 488, "cookies": false, "type": "", "demo": "sites\/update-site-deployment.md", @@ -39837,7 +39586,6 @@ "deploymentId": { "type": "string", "description": "Deployment ID.", - "default": null, "x-example": "<DEPLOYMENT_ID>" } }, @@ -39873,7 +39621,6 @@ "x-appwrite": { "method": "listDeployments", "group": "deployments", - "weight": 487, "cookies": false, "type": "", "demo": "sites\/list-deployments.md", @@ -39964,7 +39711,6 @@ "x-appwrite": { "method": "createDeployment", "group": "deployments", - "weight": 483, "cookies": false, "type": "upload", "demo": "sites\/create-deployment.md", @@ -40067,7 +39813,6 @@ "x-appwrite": { "method": "createDuplicateDeployment", "group": "deployments", - "weight": 491, "cookies": false, "type": "", "demo": "sites\/create-duplicate-deployment.md", @@ -40110,7 +39855,6 @@ "deploymentId": { "type": "string", "description": "Deployment ID.", - "default": null, "x-example": "<DEPLOYMENT_ID>" } }, @@ -40148,7 +39892,6 @@ "x-appwrite": { "method": "createTemplateDeployment", "group": "deployments", - "weight": 484, "cookies": false, "type": "", "demo": "sites\/create-template-deployment.md", @@ -40191,38 +39934,32 @@ "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": [] + "x-enum-name": "TemplateReferenceType" }, "reference": { "type": "string", "description": "Reference value, can be a commit hash, branch name, or release tag", - "default": null, "x-example": "<REFERENCE>" }, "activate": { @@ -40270,7 +40007,6 @@ "x-appwrite": { "method": "createVcsDeployment", "group": "deployments", - "weight": 485, "cookies": false, "type": "", "demo": "sites\/create-vcs-deployment.md", @@ -40313,20 +40049,17 @@ "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": [] + "x-enum-name": "VCSReferenceType" }, "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": { @@ -40369,7 +40102,6 @@ "x-appwrite": { "method": "getDeployment", "group": "deployments", - "weight": 486, "cookies": false, "type": "", "demo": "sites\/get-deployment.md", @@ -40433,7 +40165,6 @@ "x-appwrite": { "method": "deleteDeployment", "group": "deployments", - "weight": 489, "cookies": false, "type": "", "demo": "sites\/delete-deployment.md", @@ -40502,7 +40233,6 @@ "x-appwrite": { "method": "getDeploymentDownload", "group": "deployments", - "weight": 490, "cookies": false, "type": "location", "demo": "sites\/get-deployment-download.md", @@ -40556,7 +40286,6 @@ "output" ], "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], "default": "source", "in": "query" } @@ -40589,7 +40318,6 @@ "x-appwrite": { "method": "updateDeploymentStatus", "group": "deployments", - "weight": 492, "cookies": false, "type": "", "demo": "sites\/update-deployment-status.md", @@ -40658,7 +40386,6 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 494, "cookies": false, "type": "", "demo": "sites\/list-logs.md", @@ -40740,7 +40467,6 @@ "x-appwrite": { "method": "getLog", "group": "logs", - "weight": 493, "cookies": false, "type": "", "demo": "sites\/get-log.md", @@ -40806,7 +40532,6 @@ "x-appwrite": { "method": "deleteLog", "group": "logs", - "weight": 495, "cookies": false, "type": "", "demo": "sites\/delete-log.md", @@ -40875,7 +40600,6 @@ "x-appwrite": { "method": "listVariables", "group": "variables", - "weight": 498, "cookies": false, "type": "", "demo": "sites\/list-variables.md", @@ -40957,7 +40681,6 @@ "x-appwrite": { "method": "createVariable", "group": "variables", - "weight": 926, "cookies": false, "type": "", "demo": "sites\/create-variable.md", @@ -41000,19 +40723,16 @@ "variableId": { "type": "string", "description": "Variable ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, "x-example": "<VARIABLE_ID>" }, "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": { @@ -41056,7 +40776,6 @@ "x-appwrite": { "method": "getVariable", "group": "variables", - "weight": 497, "cookies": false, "type": "", "demo": "sites\/get-variable.md", @@ -41125,7 +40844,6 @@ "x-appwrite": { "method": "updateVariable", "group": "variables", - "weight": 499, "cookies": false, "type": "", "demo": "sites\/update-variable.md", @@ -41176,21 +40894,18 @@ "key": { "type": "string", "description": "Variable key. Max length: 255 chars.", - "default": null, "x-example": "<KEY>", "x-nullable": true }, "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 sites can read them during build and runtime.", - "default": null, "x-example": false, "x-nullable": true } @@ -41219,7 +40934,6 @@ "x-appwrite": { "method": "deleteVariable", "group": "variables", - "weight": 500, "cookies": false, "type": "", "demo": "sites\/delete-variable.md", @@ -41288,7 +41002,6 @@ "x-appwrite": { "method": "listBuckets", "group": "buckets", - "weight": 550, "cookies": false, "type": "", "demo": "storage\/list-buckets.md", @@ -41372,7 +41085,6 @@ "x-appwrite": { "method": "createBucket", "group": "buckets", - "weight": 548, "cookies": false, "type": "", "demo": "storage\/create-bucket.md", @@ -41408,19 +41120,16 @@ "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": { @@ -41441,7 +41150,7 @@ }, "maximumFileSize": { "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 0B.", "default": {}, "x-example": 1, "format": "int32" @@ -41465,8 +41174,7 @@ "gzip", "zstd" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "Compression" }, "encryption": { "type": "boolean", @@ -41520,7 +41228,6 @@ "x-appwrite": { "method": "getBucket", "group": "buckets", - "weight": 549, "cookies": false, "type": "", "demo": "storage\/get-bucket.md", @@ -41582,7 +41289,6 @@ "x-appwrite": { "method": "updateBucket", "group": "buckets", - "weight": 551, "cookies": false, "type": "", "demo": "storage\/update-bucket.md", @@ -41626,13 +41332,11 @@ "name": { "type": "string", "description": "Bucket 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": { @@ -41653,7 +41357,7 @@ }, "maximumFileSize": { "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 0B.", "default": {}, "x-example": 1, "format": "int32" @@ -41677,8 +41381,7 @@ "gzip", "zstd" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "Compression" }, "encryption": { "type": "boolean", @@ -41726,7 +41429,6 @@ "x-appwrite": { "method": "deleteBucket", "group": "buckets", - "weight": 552, "cookies": false, "type": "", "demo": "storage\/delete-bucket.md", @@ -41788,7 +41490,6 @@ "x-appwrite": { "method": "listFiles", "group": "files", - "weight": 555, "cookies": false, "type": "", "demo": "storage\/list-files.md", @@ -41883,7 +41584,6 @@ "x-appwrite": { "method": "createFile", "group": "files", - "weight": 1208, "cookies": false, "type": "upload", "demo": "storage\/create-file.md", @@ -41976,7 +41676,6 @@ "x-appwrite": { "method": "getFile", "group": "files", - "weight": 554, "cookies": false, "type": "", "demo": "storage\/get-file.md", @@ -42049,7 +41748,6 @@ "x-appwrite": { "method": "updateFile", "group": "files", - "weight": 556, "cookies": false, "type": "", "demo": "storage\/update-file.md", @@ -42104,13 +41802,11 @@ "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": { @@ -42142,7 +41838,6 @@ "x-appwrite": { "method": "deleteFile", "group": "files", - "weight": 557, "cookies": false, "type": "", "demo": "storage\/delete-file.md", @@ -42215,7 +41910,6 @@ "x-appwrite": { "method": "getFileDownload", "group": "files", - "weight": 559, "cookies": false, "type": "location", "demo": "storage\/get-file-download.md", @@ -42297,7 +41991,6 @@ "x-appwrite": { "method": "getFilePreview", "group": "files", - "weight": 558, "cookies": false, "type": "location", "demo": "storage\/get-file-preview.md", @@ -42381,7 +42074,6 @@ "bottom-right" ], "x-enum-name": "ImageGravity", - "x-enum-keys": [], "default": "center", "in": "query" }, @@ -42467,8 +42159,6 @@ "gif" ], "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "", "in": "query" }, { @@ -42507,7 +42197,6 @@ "x-appwrite": { "method": "getFileView", "group": "files", - "weight": 560, "cookies": false, "type": "location", "demo": "storage\/get-file-view.md", @@ -42589,7 +42278,6 @@ "x-appwrite": { "method": "list", "group": "tablesdb", - "weight": 780, "cookies": false, "type": "", "demo": "tablesdb\/list.md", @@ -42673,7 +42361,6 @@ "x-appwrite": { "method": "create", "group": "tablesdb", - "weight": 776, "cookies": false, "type": "", "demo": "tablesdb\/create.md", @@ -42709,13 +42396,11 @@ "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": { @@ -42758,7 +42443,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 849, "cookies": false, "type": "", "demo": "tablesdb\/list-transactions.md", @@ -42830,7 +42514,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 845, "cookies": false, "type": "", "demo": "tablesdb\/create-transaction.md", @@ -42906,7 +42589,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 846, "cookies": false, "type": "", "demo": "tablesdb\/get-transaction.md", @@ -42974,7 +42656,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 847, "cookies": false, "type": "", "demo": "tablesdb\/update-transaction.md", @@ -43058,7 +42739,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 848, "cookies": false, "type": "", "demo": "tablesdb\/delete-transaction.md", @@ -43128,7 +42808,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 850, "cookies": false, "type": "", "demo": "tablesdb\/create-operations.md", @@ -43214,7 +42893,6 @@ "x-appwrite": { "method": "get", "group": "tablesdb", - "weight": 777, "cookies": false, "type": "", "demo": "tablesdb\/get.md", @@ -43276,7 +42954,6 @@ "x-appwrite": { "method": "update", "group": "tablesdb", - "weight": 778, "cookies": false, "type": "", "demo": "tablesdb\/update.md", @@ -43320,7 +42997,6 @@ "name": { "type": "string", "description": "Database name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "enabled": { @@ -43354,7 +43030,6 @@ "x-appwrite": { "method": "delete", "group": "tablesdb", - "weight": 779, "cookies": false, "type": "", "demo": "tablesdb\/delete.md", @@ -43416,7 +43091,6 @@ "x-appwrite": { "method": "listTables", "group": "tables", - "weight": 787, "cookies": false, "type": "", "demo": "tablesdb\/list-tables.md", @@ -43511,7 +43185,6 @@ "x-appwrite": { "method": "createTable", "group": "tables", - "weight": 783, "cookies": false, "type": "", "demo": "tablesdb\/create-table.md", @@ -43558,19 +43231,16 @@ "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": { @@ -43641,7 +43311,6 @@ "x-appwrite": { "method": "getTable", "group": "tables", - "weight": 784, "cookies": false, "type": "", "demo": "tablesdb\/get-table.md", @@ -43714,7 +43383,6 @@ "x-appwrite": { "method": "updateTable", "group": "tables", - "weight": 785, "cookies": false, "type": "", "demo": "tablesdb\/update-table.md", @@ -43769,13 +43437,11 @@ "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": { @@ -43825,7 +43491,6 @@ "x-appwrite": { "method": "deleteTable", "group": "tables", - "weight": 786, "cookies": false, "type": "", "demo": "tablesdb\/delete-table.md", @@ -43898,7 +43563,6 @@ "x-appwrite": { "method": "listColumns", "group": "columns", - "weight": 792, "cookies": false, "type": "", "demo": "tablesdb\/list-columns.md", @@ -43996,7 +43660,6 @@ "x-appwrite": { "method": "createBigIntColumn", "group": "columns", - "weight": 805, "cookies": false, "type": "", "demo": "tablesdb\/create-big-int-column.md", @@ -44053,19 +43716,16 @@ "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 @@ -44073,7 +43733,6 @@ "max": { "type": "integer", "description": "Maximum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -44081,7 +43740,6 @@ "default": { "type": "integer", "description": "Default value. Cannot be set when column is required.", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -44128,7 +43786,6 @@ "x-appwrite": { "method": "updateBigIntColumn", "group": "columns", - "weight": 806, "cookies": false, "type": "", "demo": "tablesdb\/update-big-int-column.md", @@ -44192,13 +43849,11 @@ "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 @@ -44206,7 +43861,6 @@ "max": { "type": "integer", "description": "Maximum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -44214,7 +43868,6 @@ "default": { "type": "integer", "description": "Default value. Cannot be set when column is required.", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -44222,7 +43875,6 @@ "newKey": { "type": "string", "description": "New Column Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -44262,7 +43914,6 @@ "x-appwrite": { "method": "createBooleanColumn", "group": "columns", - "weight": 793, "cookies": false, "type": "", "demo": "tablesdb\/create-boolean-column.md", @@ -44319,19 +43970,16 @@ "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 }, @@ -44377,7 +44025,6 @@ "x-appwrite": { "method": "updateBooleanColumn", "group": "columns", - "weight": 794, "cookies": false, "type": "", "demo": "tablesdb\/update-boolean-column.md", @@ -44441,20 +44088,17 @@ "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 } @@ -44494,7 +44138,6 @@ "x-appwrite": { "method": "createDatetimeColumn", "group": "columns", - "weight": 795, "cookies": false, "type": "", "demo": "tablesdb\/create-datetime-column.md", @@ -44551,19 +44194,16 @@ "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -44610,7 +44250,6 @@ "x-appwrite": { "method": "updateDatetimeColumn", "group": "columns", - "weight": 796, "cookies": false, "type": "", "demo": "tablesdb\/update-datetime-column.md", @@ -44674,13 +44313,11 @@ "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": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -44688,7 +44325,6 @@ "newKey": { "type": "string", "description": "New Column Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -44728,7 +44364,6 @@ "x-appwrite": { "method": "createEmailColumn", "group": "columns", - "weight": 797, "cookies": false, "type": "", "demo": "tablesdb\/create-email-column.md", @@ -44785,19 +44420,16 @@ "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 @@ -44844,7 +44476,6 @@ "x-appwrite": { "method": "updateEmailColumn", "group": "columns", - "weight": 798, "cookies": false, "type": "", "demo": "tablesdb\/update-email-column.md", @@ -44908,13 +44539,11 @@ "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 @@ -44922,7 +44551,6 @@ "newKey": { "type": "string", "description": "New Column Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -44962,7 +44590,6 @@ "x-appwrite": { "method": "createEnumColumn", "group": "columns", - "weight": 799, "cookies": false, "type": "", "demo": "tablesdb\/create-enum-column.md", @@ -45019,13 +44646,11 @@ "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" @@ -45034,13 +44659,11 @@ "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 }, @@ -45087,7 +44710,6 @@ "x-appwrite": { "method": "updateEnumColumn", "group": "columns", - "weight": 800, "cookies": false, "type": "", "demo": "tablesdb\/update-enum-column.md", @@ -45151,7 +44773,6 @@ "elements": { "type": "array", "description": "Updated list of enum values.", - "default": null, "x-example": null, "items": { "type": "string" @@ -45160,20 +44781,17 @@ "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 } @@ -45214,7 +44832,6 @@ "x-appwrite": { "method": "createFloatColumn", "group": "columns", - "weight": 801, "cookies": false, "type": "", "demo": "tablesdb\/create-float-column.md", @@ -45271,19 +44888,16 @@ "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 @@ -45291,7 +44905,6 @@ "max": { "type": "number", "description": "Maximum value", - "default": null, "x-example": null, "format": "float", "x-nullable": true @@ -45299,7 +44912,6 @@ "default": { "type": "number", "description": "Default value. Cannot be set when required.", - "default": null, "x-example": null, "format": "float", "x-nullable": true @@ -45346,7 +44958,6 @@ "x-appwrite": { "method": "updateFloatColumn", "group": "columns", - "weight": 802, "cookies": false, "type": "", "demo": "tablesdb\/update-float-column.md", @@ -45410,13 +45021,11 @@ "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 @@ -45424,7 +45033,6 @@ "max": { "type": "number", "description": "Maximum value", - "default": null, "x-example": null, "format": "float", "x-nullable": true @@ -45432,7 +45040,6 @@ "default": { "type": "number", "description": "Default value. Cannot be set when required.", - "default": null, "x-example": null, "format": "float", "x-nullable": true @@ -45440,7 +45047,6 @@ "newKey": { "type": "string", "description": "New Column Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -45480,7 +45086,6 @@ "x-appwrite": { "method": "createIntegerColumn", "group": "columns", - "weight": 803, "cookies": false, "type": "", "demo": "tablesdb\/create-integer-column.md", @@ -45537,19 +45142,16 @@ "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 @@ -45557,7 +45159,6 @@ "max": { "type": "integer", "description": "Maximum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -45565,7 +45166,6 @@ "default": { "type": "integer", "description": "Default value. Cannot be set when column is required.", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -45612,7 +45212,6 @@ "x-appwrite": { "method": "updateIntegerColumn", "group": "columns", - "weight": 804, "cookies": false, "type": "", "demo": "tablesdb\/update-integer-column.md", @@ -45676,13 +45275,11 @@ "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 @@ -45690,7 +45287,6 @@ "max": { "type": "integer", "description": "Maximum value", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -45698,7 +45294,6 @@ "default": { "type": "integer", "description": "Default value. Cannot be set when column is required.", - "default": null, "x-example": null, "format": "int64", "x-nullable": true @@ -45706,7 +45301,6 @@ "newKey": { "type": "string", "description": "New Column Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -45746,7 +45340,6 @@ "x-appwrite": { "method": "createIpColumn", "group": "columns", - "weight": 807, "cookies": false, "type": "", "demo": "tablesdb\/create-ip-column.md", @@ -45803,19 +45396,16 @@ "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 }, @@ -45861,7 +45451,6 @@ "x-appwrite": { "method": "updateIpColumn", "group": "columns", - "weight": 808, "cookies": false, "type": "", "demo": "tablesdb\/update-ip-column.md", @@ -45925,20 +45514,17 @@ "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 } @@ -45978,7 +45564,6 @@ "x-appwrite": { "method": "createLineColumn", "group": "columns", - "weight": 809, "cookies": false, "type": "", "demo": "tablesdb\/create-line-column.md", @@ -46035,19 +45620,16 @@ "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 } @@ -46087,7 +45669,6 @@ "x-appwrite": { "method": "updateLineColumn", "group": "columns", - "weight": 810, "cookies": false, "type": "", "demo": "tablesdb\/update-line-column.md", @@ -46151,20 +45732,17 @@ "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 } @@ -46203,7 +45781,6 @@ "x-appwrite": { "method": "createLongtextColumn", "group": "columns", - "weight": 827, "cookies": false, "type": "", "demo": "tablesdb\/create-longtext-column.md", @@ -46260,19 +45837,16 @@ "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 }, @@ -46324,7 +45898,6 @@ "x-appwrite": { "method": "updateLongtextColumn", "group": "columns", - "weight": 828, "cookies": false, "type": "", "demo": "tablesdb\/update-longtext-column.md", @@ -46388,20 +45961,17 @@ "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 } @@ -46441,7 +46011,6 @@ "x-appwrite": { "method": "createMediumtextColumn", "group": "columns", - "weight": 825, "cookies": false, "type": "", "demo": "tablesdb\/create-mediumtext-column.md", @@ -46498,19 +46067,16 @@ "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 }, @@ -46562,7 +46128,6 @@ "x-appwrite": { "method": "updateMediumtextColumn", "group": "columns", - "weight": 826, "cookies": false, "type": "", "demo": "tablesdb\/update-mediumtext-column.md", @@ -46626,20 +46191,17 @@ "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 } @@ -46679,7 +46241,6 @@ "x-appwrite": { "method": "createPointColumn", "group": "columns", - "weight": 811, "cookies": false, "type": "", "demo": "tablesdb\/create-point-column.md", @@ -46736,19 +46297,16 @@ "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 } @@ -46788,7 +46346,6 @@ "x-appwrite": { "method": "updatePointColumn", "group": "columns", - "weight": 812, "cookies": false, "type": "", "demo": "tablesdb\/update-point-column.md", @@ -46852,20 +46409,17 @@ "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 } @@ -46904,7 +46458,6 @@ "x-appwrite": { "method": "createPolygonColumn", "group": "columns", - "weight": 813, "cookies": false, "type": "", "demo": "tablesdb\/create-polygon-column.md", @@ -46961,19 +46514,16 @@ "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, 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 } @@ -47013,7 +46563,6 @@ "x-appwrite": { "method": "updatePolygonColumn", "group": "columns", - "weight": 814, "cookies": false, "type": "", "demo": "tablesdb\/update-polygon-column.md", @@ -47077,20 +46626,17 @@ "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 } @@ -47129,7 +46675,6 @@ "x-appwrite": { "method": "createRelationshipColumn", "group": "columns", - "weight": 815, "cookies": false, "type": "", "demo": "tablesdb\/create-relationship-column.md", @@ -47186,13 +46731,11 @@ "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", @@ -47200,8 +46743,7 @@ "manyToMany", "oneToMany" ], - "x-enum-name": "RelationshipType", - "x-enum-keys": [] + "x-enum-name": "RelationshipType" }, "twoWay": { "type": "boolean", @@ -47212,14 +46754,12 @@ "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 }, @@ -47233,8 +46773,7 @@ "restrict", "setNull" ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [] + "x-enum-name": "RelationMutate" } }, "required": [ @@ -47272,7 +46811,6 @@ "x-appwrite": { "method": "createStringColumn", "group": "columns", - "weight": 817, "cookies": false, "type": "", "demo": "tablesdb\/create-string-column.md", @@ -47333,26 +46871,22 @@ "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 }, @@ -47405,7 +46939,6 @@ "x-appwrite": { "method": "updateStringColumn", "group": "columns", - "weight": 818, "cookies": false, "type": "", "demo": "tablesdb\/update-string-column.md", @@ -47473,20 +47006,17 @@ "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 @@ -47494,7 +47024,6 @@ "newKey": { "type": "string", "description": "New Column Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -47534,7 +47063,6 @@ "x-appwrite": { "method": "createTextColumn", "group": "columns", - "weight": 823, "cookies": false, "type": "", "demo": "tablesdb\/create-text-column.md", @@ -47591,19 +47119,16 @@ "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 }, @@ -47655,7 +47180,6 @@ "x-appwrite": { "method": "updateTextColumn", "group": "columns", - "weight": 824, "cookies": false, "type": "", "demo": "tablesdb\/update-text-column.md", @@ -47719,20 +47243,17 @@ "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 } @@ -47772,7 +47293,6 @@ "x-appwrite": { "method": "createUrlColumn", "group": "columns", - "weight": 819, "cookies": false, "type": "", "demo": "tablesdb\/create-url-column.md", @@ -47829,19 +47349,16 @@ "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": "https:\/\/example.com", "format": "url", "x-nullable": true @@ -47888,7 +47405,6 @@ "x-appwrite": { "method": "updateUrlColumn", "group": "columns", - "weight": 820, "cookies": false, "type": "", "demo": "tablesdb\/update-url-column.md", @@ -47952,13 +47468,11 @@ "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 @@ -47966,7 +47480,6 @@ "newKey": { "type": "string", "description": "New Column Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -48006,7 +47519,6 @@ "x-appwrite": { "method": "createVarcharColumn", "group": "columns", - "weight": 821, "cookies": false, "type": "", "demo": "tablesdb\/create-varchar-column.md", @@ -48063,26 +47575,22 @@ "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 }, @@ -48135,7 +47643,6 @@ "x-appwrite": { "method": "updateVarcharColumn", "group": "columns", - "weight": 822, "cookies": false, "type": "", "demo": "tablesdb\/update-varchar-column.md", @@ -48199,20 +47706,17 @@ "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 @@ -48220,7 +47724,6 @@ "newKey": { "type": "string", "description": "New Column Key.", - "default": null, "x-example": null, "x-nullable": true } @@ -48340,7 +47843,6 @@ "x-appwrite": { "method": "getColumn", "group": "columns", - "weight": 790, "cookies": false, "type": "", "demo": "tablesdb\/get-column.md", @@ -48417,7 +47919,6 @@ "x-appwrite": { "method": "deleteColumn", "group": "columns", - "weight": 791, "cookies": false, "type": "", "demo": "tablesdb\/delete-column.md", @@ -48501,7 +48002,6 @@ "x-appwrite": { "method": "updateRelationshipColumn", "group": "columns", - "weight": 816, "cookies": false, "type": "", "demo": "tablesdb\/update-relationship-column.md", @@ -48565,7 +48065,6 @@ "onDelete": { "type": "string", "description": "Constraints option", - "default": null, "x-example": "cascade", "enum": [ "cascade", @@ -48573,13 +48072,11 @@ "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 } @@ -48613,7 +48110,6 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 832, "cookies": false, "type": "", "demo": "tablesdb\/list-indexes.md", @@ -48708,7 +48204,6 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 829, "cookies": false, "type": "", "demo": "tablesdb\/create-index.md", @@ -48764,13 +48259,11 @@ "key": { "type": "string", "description": "Index Key.", - "default": null, "x-example": null }, "type": { "type": "string", "description": "Index type.", - "default": null, "x-example": "key", "enum": [ "key", @@ -48778,13 +48271,11 @@ "unique", "spatial" ], - "x-enum-name": "TablesDBIndexType", - "x-enum-keys": [] + "x-enum-name": "TablesDBIndexType" }, "columns": { "type": "array", "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", - "default": null, "x-example": null, "items": { "type": "string" @@ -48801,8 +48292,7 @@ "asc", "desc" ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] + "x-enum-name": "OrderBy" } }, "lengths": { @@ -48849,7 +48339,6 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 830, "cookies": false, "type": "", "demo": "tablesdb\/get-index.md", @@ -48925,7 +48414,6 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 831, "cookies": false, "type": "", "demo": "tablesdb\/delete-index.md", @@ -49006,7 +48494,6 @@ "x-appwrite": { "method": "listRows", "group": "rows", - "weight": 920, "cookies": false, "type": "", "demo": "tablesdb\/list-rows.md", @@ -49121,7 +48608,6 @@ "x-appwrite": { "method": "createRow", "group": "rows", - "weight": 833, "cookies": false, "type": "", "demo": "tablesdb\/create-row.md", @@ -49254,7 +48740,6 @@ "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": { @@ -49273,7 +48758,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -49307,7 +48791,6 @@ "x-appwrite": { "method": "upsertRows", "group": "rows", - "weight": 838, "cookies": false, "type": "", "demo": "tablesdb\/upsert-rows.md", @@ -49393,7 +48876,6 @@ "rows": { "type": "array", "description": "Array of row data as JSON objects. May contain partial rows.", - "default": null, "x-example": null, "items": { "type": "object" @@ -49402,7 +48884,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -49439,7 +48920,6 @@ "x-appwrite": { "method": "updateRows", "group": "rows", - "weight": 836, "cookies": false, "type": "", "demo": "tablesdb\/update-rows.md", @@ -49509,7 +48989,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -49543,7 +49022,6 @@ "x-appwrite": { "method": "deleteRows", "group": "rows", - "weight": 840, "cookies": false, "type": "", "demo": "tablesdb\/delete-rows.md", @@ -49607,7 +49085,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -49641,7 +49118,6 @@ "x-appwrite": { "method": "getRow", "group": "rows", - "weight": 834, "cookies": false, "type": "", "demo": "tablesdb\/get-row.md", @@ -49745,7 +49221,6 @@ "x-appwrite": { "method": "upsertRow", "group": "rows", - "weight": 837, "cookies": false, "type": "", "demo": "tablesdb\/upsert-row.md", @@ -49850,7 +49325,6 @@ "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": { @@ -49860,7 +49334,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -49894,7 +49367,6 @@ "x-appwrite": { "method": "updateRow", "group": "rows", - "weight": 835, "cookies": false, "type": "", "demo": "tablesdb\/update-row.md", @@ -49966,7 +49438,6 @@ "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": { @@ -49976,7 +49447,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -50005,7 +49475,6 @@ "x-appwrite": { "method": "deleteRow", "group": "rows", - "weight": 839, "cookies": false, "type": "", "demo": "tablesdb\/delete-row.md", @@ -50071,7 +49540,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -50107,7 +49575,6 @@ "x-appwrite": { "method": "decrementRowColumn", "group": "rows", - "weight": 844, "cookies": false, "type": "", "demo": "tablesdb\/decrement-row-column.md", @@ -50187,7 +49654,6 @@ "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 @@ -50195,7 +49661,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -50231,7 +49696,6 @@ "x-appwrite": { "method": "incrementRowColumn", "group": "rows", - "weight": 843, "cookies": false, "type": "", "demo": "tablesdb\/increment-row-column.md", @@ -50311,7 +49775,6 @@ "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 @@ -50319,7 +49782,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>", "x-nullable": true } @@ -50353,7 +49815,6 @@ "x-appwrite": { "method": "list", "group": "teams", - "weight": 531, "cookies": false, "type": "", "demo": "teams\/list.md", @@ -50440,7 +49901,6 @@ "x-appwrite": { "method": "create", "group": "teams", - "weight": 529, "cookies": false, "type": "", "demo": "teams\/create.md", @@ -50479,13 +49939,11 @@ "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": { @@ -50533,7 +49991,6 @@ "x-appwrite": { "method": "get", "group": "teams", - "weight": 530, "cookies": false, "type": "", "demo": "teams\/get.md", @@ -50598,7 +50055,6 @@ "x-appwrite": { "method": "updateName", "group": "teams", - "weight": 533, "cookies": false, "type": "", "demo": "teams\/update-name.md", @@ -50645,7 +50101,6 @@ "name": { "type": "string", "description": "New team name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" } }, @@ -50676,7 +50131,6 @@ "x-appwrite": { "method": "delete", "group": "teams", - "weight": 532, "cookies": false, "type": "", "demo": "teams\/delete.md", @@ -50741,7 +50195,6 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 538, "cookies": false, "type": "", "demo": "teams\/list-memberships.md", @@ -50836,7 +50289,6 @@ "x-appwrite": { "method": "createMembership", "group": "memberships", - "weight": 536, "cookies": false, "type": "", "demo": "teams\/create-membership.md", @@ -50903,7 +50355,6 @@ "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": null, "items": { "type": "string" @@ -50955,7 +50406,6 @@ "x-appwrite": { "method": "getMembership", "group": "memberships", - "weight": 537, "cookies": false, "type": "", "demo": "teams\/get-membership.md", @@ -51028,7 +50478,6 @@ "x-appwrite": { "method": "updateMembership", "group": "memberships", - "weight": 539, "cookies": false, "type": "", "demo": "teams\/update-membership.md", @@ -51083,7 +50532,6 @@ "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" @@ -51117,7 +50565,6 @@ "x-appwrite": { "method": "deleteMembership", "group": "memberships", - "weight": 1209, "cookies": false, "type": "", "demo": "teams\/delete-membership.md", @@ -51192,7 +50639,6 @@ "x-appwrite": { "method": "updateMembershipStatus", "group": "memberships", - "weight": 541, "cookies": false, "type": "", "demo": "teams\/update-membership-status.md", @@ -51246,13 +50692,11 @@ "userId": { "type": "string", "description": "User ID.", - "default": null, "x-example": "<USER_ID>" }, "secret": { "type": "string", "description": "Secret key.", - "default": null, "x-example": "<SECRET>" } }, @@ -51289,7 +50733,6 @@ "x-appwrite": { "method": "getPrefs", "group": "teams", - "weight": 534, "cookies": false, "type": "", "demo": "teams\/get-prefs.md", @@ -51353,7 +50796,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "teams", - "weight": 535, "cookies": false, "type": "", "demo": "teams\/update-prefs.md", @@ -51435,7 +50877,6 @@ "x-appwrite": { "method": "list", "group": "files", - "weight": 545, "cookies": false, "type": "", "demo": "tokens\/list.md", @@ -51525,7 +50966,6 @@ "x-appwrite": { "method": "createFileToken", "group": "files", - "weight": 543, "cookies": false, "type": "", "demo": "tokens\/create-file-token.md", @@ -51576,7 +51016,6 @@ "expire": { "type": "string", "description": "Token expiry date", - "default": null, "x-example": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -51611,7 +51050,6 @@ "x-appwrite": { "method": "get", "group": "tokens", - "weight": 544, "cookies": false, "type": "", "demo": "tokens\/get.md", @@ -51672,7 +51110,6 @@ "x-appwrite": { "method": "update", "group": "tokens", - "weight": 546, "cookies": false, "type": "", "demo": "tokens\/update.md", @@ -51715,7 +51152,6 @@ "expire": { "type": "string", "description": "File token expiry date", - "default": null, "x-example": "2020-10-15T06:38:00.000+00:00", "format": "datetime", "x-nullable": true @@ -51745,7 +51181,6 @@ "x-appwrite": { "method": "delete", "group": "tokens", - "weight": 547, "cookies": false, "type": "", "demo": "tokens\/delete.md", @@ -51806,7 +51241,6 @@ "x-appwrite": { "method": "listEvents", "group": "events", - "weight": 1221, "cookies": false, "type": "", "demo": "usage\/list-events.md", @@ -51880,7 +51314,6 @@ "x-appwrite": { "method": "listGauges", "group": "gauges", - "weight": 1222, "cookies": false, "type": "", "demo": "usage\/list-gauges.md", @@ -51954,7 +51387,6 @@ "x-appwrite": { "method": "list", "group": "users", - "weight": 70, "cookies": false, "type": "", "demo": "users\/list.md", @@ -52038,7 +51470,6 @@ "x-appwrite": { "method": "create", "group": "users", - "weight": 61, "cookies": false, "type": "", "demo": "users\/create.md", @@ -52074,13 +51505,11 @@ "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 @@ -52088,7 +51517,6 @@ "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 @@ -52140,7 +51568,6 @@ "x-appwrite": { "method": "createArgon2User", "group": "users", - "weight": 64, "cookies": false, "type": "", "demo": "users\/create-argon-2-user.md", @@ -52176,20 +51603,17 @@ "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" }, @@ -52236,7 +51660,6 @@ "x-appwrite": { "method": "createBcryptUser", "group": "users", - "weight": 62, "cookies": false, "type": "", "demo": "users\/create-bcrypt-user.md", @@ -52272,20 +51695,17 @@ "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" }, @@ -52330,7 +51750,6 @@ "x-appwrite": { "method": "listIdentities", "group": "identities", - "weight": 78, "cookies": false, "type": "", "demo": "users\/list-identities.md", @@ -52411,7 +51830,6 @@ "x-appwrite": { "method": "deleteIdentity", "group": "identities", - "weight": 102, "cookies": false, "type": "", "demo": "users\/delete-identity.md", @@ -52475,7 +51893,6 @@ "x-appwrite": { "method": "createMD5User", "group": "users", - "weight": 63, "cookies": false, "type": "", "demo": "users\/create-md-5-user.md", @@ -52511,20 +51928,17 @@ "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" }, @@ -52571,7 +51985,6 @@ "x-appwrite": { "method": "createPHPassUser", "group": "users", - "weight": 66, "cookies": false, "type": "", "demo": "users\/create-ph-pass-user.md", @@ -52607,20 +52020,17 @@ "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" }, @@ -52667,7 +52077,6 @@ "x-appwrite": { "method": "createScryptUser", "group": "users", - "weight": 67, "cookies": false, "type": "", "demo": "users\/create-scrypt-user.md", @@ -52703,54 +52112,46 @@ "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" }, @@ -52802,7 +52203,6 @@ "x-appwrite": { "method": "createScryptModifiedUser", "group": "users", - "weight": 68, "cookies": false, "type": "", "demo": "users\/create-scrypt-modified-user.md", @@ -52838,39 +52238,33 @@ "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": { @@ -52919,7 +52313,6 @@ "x-appwrite": { "method": "createSHAUser", "group": "users", - "weight": 65, "cookies": false, "type": "", "demo": "users\/create-sha-user.md", @@ -52955,27 +52348,23 @@ "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 SHA.", - "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", @@ -52990,8 +52379,7 @@ "sha3-384", "sha3-512" ], - "x-enum-name": "PasswordHash", - "x-enum-keys": [] + "x-enum-name": "PasswordHash" }, "name": { "type": "string", @@ -53034,7 +52422,6 @@ "x-appwrite": { "method": "get", "group": "users", - "weight": 71, "cookies": false, "type": "", "demo": "users\/get.md", @@ -53091,7 +52478,6 @@ "x-appwrite": { "method": "delete", "group": "users", - "weight": 100, "cookies": false, "type": "", "demo": "users\/delete.md", @@ -53155,7 +52541,6 @@ "x-appwrite": { "method": "updateEmail", "group": "users", - "weight": 85, "cookies": false, "type": "", "demo": "users\/update-email.md", @@ -53199,7 +52584,6 @@ "email": { "type": "string", "description": "User email.", - "default": null, "x-example": "email@example.com", "format": "email" } @@ -53238,7 +52622,6 @@ "x-appwrite": { "method": "updateImpersonator", "group": "users", - "weight": 81, "cookies": false, "type": "", "demo": "users\/update-impersonator.md", @@ -53282,7 +52665,6 @@ "impersonator": { "type": "boolean", "description": "Whether the user can impersonate other users. When true, the user can browse project users to choose a target and can pass impersonation headers to act as that user. Internal audit logs still attribute impersonated actions to the original impersonator and store the target user details only in internal audit payload data.", - "default": null, "x-example": false } }, @@ -53320,7 +52702,6 @@ "x-appwrite": { "method": "createJWT", "group": "sessions", - "weight": 103, "cookies": false, "type": "", "demo": "users\/create-jwt.md", @@ -53406,7 +52787,6 @@ "x-appwrite": { "method": "updateLabels", "group": "users", - "weight": 80, "cookies": false, "type": "", "demo": "users\/update-labels.md", @@ -53450,7 +52830,6 @@ "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" @@ -53489,7 +52868,6 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 76, "cookies": false, "type": "", "demo": "users\/list-logs.md", @@ -53572,7 +52950,6 @@ "x-appwrite": { "method": "listMemberships", "group": "memberships", - "weight": 75, "cookies": false, "type": "", "demo": "users\/list-memberships.md", @@ -53666,7 +53043,6 @@ "x-appwrite": { "method": "updateMfa", "group": "users", - "weight": 90, "cookies": false, "type": "", "demo": "users\/update-mfa.md", @@ -53772,7 +53148,6 @@ "mfa": { "type": "boolean", "description": "Enable or disable MFA.", - "default": null, "x-example": false } }, @@ -53805,7 +53180,6 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 95, "cookies": false, "type": "", "demo": "users\/delete-mfa-authenticator.md", @@ -53910,7 +53284,6 @@ "totp" ], "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], "in": "path" } ] @@ -53940,7 +53313,6 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 91, "cookies": false, "type": "", "demo": "users\/list-mfa-factors.md", @@ -54060,7 +53432,6 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 92, "cookies": false, "type": "", "demo": "users\/get-mfa-recovery-codes.md", @@ -54180,7 +53551,6 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 94, "cookies": false, "type": "", "demo": "users\/update-mfa-recovery-codes.md", @@ -54300,7 +53670,6 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 93, "cookies": false, "type": "", "demo": "users\/create-mfa-recovery-codes.md", @@ -54422,7 +53791,6 @@ "x-appwrite": { "method": "updateName", "group": "users", - "weight": 83, "cookies": false, "type": "", "demo": "users\/update-name.md", @@ -54466,7 +53834,6 @@ "name": { "type": "string", "description": "User name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" } }, @@ -54504,7 +53871,6 @@ "x-appwrite": { "method": "updatePassword", "group": "users", - "weight": 84, "cookies": false, "type": "", "demo": "users\/update-password.md", @@ -54548,7 +53914,6 @@ "password": { "type": "string", "description": "New user password. Must be at least 8 chars.", - "default": null, "x-example": null } }, @@ -54586,7 +53951,6 @@ "x-appwrite": { "method": "updatePhone", "group": "users", - "weight": 86, "cookies": false, "type": "", "demo": "users\/update-phone.md", @@ -54630,7 +53994,6 @@ "number": { "type": "string", "description": "User phone number.", - "default": null, "x-example": "+12065550100", "format": "phone" } @@ -54667,7 +54030,6 @@ "x-appwrite": { "method": "getPrefs", "group": "users", - "weight": 72, "cookies": false, "type": "", "demo": "users\/get-prefs.md", @@ -54729,7 +54091,6 @@ "x-appwrite": { "method": "updatePrefs", "group": "users", - "weight": 88, "cookies": false, "type": "", "demo": "users\/update-prefs.md", @@ -54809,7 +54170,6 @@ "x-appwrite": { "method": "listSessions", "group": "sessions", - "weight": 74, "cookies": false, "type": "", "demo": "users\/list-sessions.md", @@ -54883,7 +54243,6 @@ "x-appwrite": { "method": "createSession", "group": "sessions", - "weight": 96, "cookies": false, "type": "", "demo": "users\/create-session.md", @@ -54943,7 +54302,6 @@ "x-appwrite": { "method": "deleteSessions", "group": "sessions", - "weight": 99, "cookies": false, "type": "", "demo": "users\/delete-sessions.md", @@ -55005,7 +54363,6 @@ "x-appwrite": { "method": "deleteSession", "group": "sessions", - "weight": 98, "cookies": false, "type": "", "demo": "users\/delete-session.md", @@ -55080,7 +54437,6 @@ "x-appwrite": { "method": "updateStatus", "group": "users", - "weight": 79, "cookies": false, "type": "", "demo": "users\/update-status.md", @@ -55124,7 +54480,6 @@ "status": { "type": "boolean", "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", - "default": null, "x-example": false } }, @@ -55160,7 +54515,6 @@ "x-appwrite": { "method": "listTargets", "group": "targets", - "weight": 77, "cookies": false, "type": "", "demo": "users\/list-targets.md", @@ -55243,7 +54597,6 @@ "x-appwrite": { "method": "createTarget", "group": "targets", - "weight": 69, "cookies": false, "type": "", "demo": "users\/create-target.md", @@ -55287,26 +54640,22 @@ "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": [] + "x-enum-name": "MessagingProviderType" }, "identifier": { "type": "string", "description": "The target identifier (token, email, phone etc.)", - "default": null, "x-example": "<IDENTIFIER>" }, "providerId": { @@ -55356,7 +54705,6 @@ "x-appwrite": { "method": "getTarget", "group": "targets", - "weight": 73, "cookies": false, "type": "", "demo": "users\/get-target.md", @@ -55426,7 +54774,6 @@ "x-appwrite": { "method": "updateTarget", "group": "targets", - "weight": 89, "cookies": false, "type": "", "demo": "users\/update-target.md", @@ -55518,7 +54865,6 @@ "x-appwrite": { "method": "deleteTarget", "group": "targets", - "weight": 101, "cookies": false, "type": "", "demo": "users\/delete-target.md", @@ -55590,7 +54936,6 @@ "x-appwrite": { "method": "createToken", "group": "sessions", - "weight": 97, "cookies": false, "type": "", "demo": "users\/create-token.md", @@ -55677,7 +55022,6 @@ "x-appwrite": { "method": "updateEmailVerification", "group": "users", - "weight": 87, "cookies": false, "type": "", "demo": "users\/update-email-verification.md", @@ -55721,7 +55065,6 @@ "emailVerification": { "type": "boolean", "description": "User email verification status.", - "default": null, "x-example": false } }, @@ -55759,7 +55102,6 @@ "x-appwrite": { "method": "updatePhoneVerification", "group": "users", - "weight": 82, "cookies": false, "type": "", "demo": "users\/update-phone-verification.md", @@ -55803,7 +55145,6 @@ "phoneVerification": { "type": "boolean", "description": "User phone verification status.", - "default": null, "x-example": false } }, @@ -55839,7 +55180,6 @@ "x-appwrite": { "method": "list", "group": "vectorsdb", - "weight": 889, "cookies": false, "type": "", "demo": "vectorsdb\/list.md", @@ -55878,15 +55218,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.", @@ -55923,7 +55254,6 @@ "x-appwrite": { "method": "create", "group": "vectorsdb", - "weight": 885, "cookies": false, "type": "", "demo": "vectorsdb\/create.md", @@ -55959,13 +55289,11 @@ "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": { @@ -56010,7 +55338,6 @@ "x-appwrite": { "method": "createTextEmbeddings", "group": "documents", - "weight": 911, "cookies": false, "type": "", "demo": "vectorsdb\/create-text-embeddings.md", @@ -56074,7 +55401,6 @@ "texts": { "type": "array", "description": "Array of text to generate embeddings.", - "default": null, "x-example": null, "items": { "type": "string" @@ -56088,8 +55414,7 @@ "enum": [ "embeddinggemma" ], - "x-enum-name": null, - "x-enum-keys": [] + "x-enum-name": "EmbeddingModel" } }, "required": [ @@ -56124,7 +55449,6 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 916, "cookies": false, "type": "", "demo": "vectorsdb\/list-transactions.md", @@ -56193,7 +55517,6 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 912, "cookies": false, "type": "", "demo": "vectorsdb\/create-transaction.md", @@ -56266,7 +55589,6 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 913, "cookies": false, "type": "", "demo": "vectorsdb\/get-transaction.md", @@ -56331,7 +55653,6 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 914, "cookies": false, "type": "", "demo": "vectorsdb\/update-transaction.md", @@ -56412,7 +55733,6 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 915, "cookies": false, "type": "", "demo": "vectorsdb\/delete-transaction.md", @@ -56479,7 +55799,6 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 917, "cookies": false, "type": "", "demo": "vectorsdb\/create-operations.md", @@ -56562,7 +55881,6 @@ "x-appwrite": { "method": "get", "group": "vectorsdb", - "weight": 886, "cookies": false, "type": "", "demo": "vectorsdb\/get.md", @@ -56624,7 +55942,6 @@ "x-appwrite": { "method": "update", "group": "vectorsdb", - "weight": 887, "cookies": false, "type": "", "demo": "vectorsdb\/update.md", @@ -56668,7 +55985,6 @@ "name": { "type": "string", "description": "Database name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "enabled": { @@ -56705,7 +56021,6 @@ "x-appwrite": { "method": "delete", "group": "vectorsdb", - "weight": 888, "cookies": false, "type": "", "demo": "vectorsdb\/delete.md", @@ -56767,7 +56082,6 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 896, "cookies": false, "type": "", "demo": "vectorsdb\/list-collections.md", @@ -56859,7 +56173,6 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 892, "cookies": false, "type": "", "demo": "vectorsdb\/create-collection.md", @@ -56903,26 +56216,22 @@ "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" @@ -56975,7 +56284,6 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 893, "cookies": false, "type": "", "demo": "vectorsdb\/get-collection.md", @@ -57045,7 +56353,6 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 894, "cookies": false, "type": "", "demo": "vectorsdb\/update-collection.md", @@ -57097,20 +56404,17 @@ "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" @@ -57156,7 +56460,6 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 895, "cookies": false, "type": "", "demo": "vectorsdb\/delete-collection.md", @@ -57226,7 +56529,6 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 906, "cookies": false, "type": "", "demo": "vectorsdb\/list-documents.md", @@ -57338,7 +56640,6 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 902, "cookies": false, "type": "", "demo": "vectorsdb\/create-document.md", @@ -57466,7 +56767,6 @@ "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" @@ -57484,7 +56784,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -57517,7 +56816,6 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 909, "cookies": false, "type": "", "demo": "vectorsdb\/upsert-documents.md", @@ -57600,7 +56898,6 @@ "documents": { "type": "array", "description": "Array of document data as JSON objects. May contain partial documents.", - "default": null, "x-example": null, "items": { "type": "object" @@ -57609,7 +56906,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } }, @@ -57645,7 +56941,6 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 908, "cookies": false, "type": "", "demo": "vectorsdb\/update-documents.md", @@ -57712,7 +57007,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -57745,7 +57039,6 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 910, "cookies": false, "type": "", "demo": "vectorsdb\/delete-documents.md", @@ -57806,7 +57099,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -57839,7 +57131,6 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 905, "cookies": false, "type": "", "demo": "vectorsdb\/get-document.md", @@ -57940,7 +57231,6 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 904, "cookies": false, "type": "", "demo": "vectorsdb\/upsert-document.md", @@ -58042,7 +57332,6 @@ "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" @@ -58051,7 +57340,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -58084,7 +57372,6 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 903, "cookies": false, "type": "", "demo": "vectorsdb\/update-document.md", @@ -58153,7 +57440,6 @@ "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" @@ -58162,7 +57448,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -58190,7 +57475,6 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 907, "cookies": false, "type": "", "demo": "vectorsdb\/delete-document.md", @@ -58253,7 +57537,6 @@ "transactionId": { "type": "string", "description": "Transaction ID for staging the operation.", - "default": null, "x-example": "<TRANSACTION_ID>" } } @@ -58286,7 +57569,6 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 901, "cookies": false, "type": "", "demo": "vectorsdb\/list-indexes.md", @@ -58377,7 +57659,6 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 898, "cookies": false, "type": "", "demo": "vectorsdb\/create-index.md", @@ -58429,13 +57710,11 @@ "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", @@ -58445,13 +57724,11 @@ "key", "unique" ], - "x-enum-name": "VectorsDBIndexType", - "x-enum-keys": [] + "x-enum-name": "VectorsDBIndexType" }, "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" @@ -58468,8 +57745,7 @@ "asc", "desc" ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] + "x-enum-name": "OrderBy" } }, "lengths": { @@ -58516,7 +57792,6 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 899, "cookies": false, "type": "", "demo": "vectorsdb\/get-index.md", @@ -58588,7 +57863,6 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 900, "cookies": false, "type": "", "demo": "vectorsdb\/delete-index.md", @@ -58665,7 +57939,6 @@ "x-appwrite": { "method": "list", "group": null, - "weight": 578, "cookies": false, "type": "", "demo": "webhooks\/list.md", @@ -58739,7 +58012,6 @@ "x-appwrite": { "method": "create", "group": null, - "weight": 577, "cookies": false, "type": "", "demo": "webhooks\/create.md", @@ -58774,25 +58046,21 @@ "webhookId": { "type": "string", "description": "Webhook ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid 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": "<WEBHOOK_ID>" }, "url": { "type": "string", "description": "Webhook URL.", - "default": null, "x-example": null }, "name": { "type": "string", "description": "Webhook name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "events": { "type": "array", "description": "Events list. Maximum of 100 events are allowed.", - "default": null, "x-example": null, "items": { "type": "string" @@ -58825,7 +58093,6 @@ "secret": { "type": "string", "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", - "default": null, "x-example": "<SECRET>", "x-nullable": true } @@ -58865,7 +58132,6 @@ "x-appwrite": { "method": "get", "group": null, - "weight": 579, "cookies": false, "type": "", "demo": "webhooks\/get.md", @@ -58926,7 +58192,6 @@ "x-appwrite": { "method": "update", "group": null, - "weight": 581, "cookies": false, "type": "", "demo": "webhooks\/update.md", @@ -58969,19 +58234,16 @@ "name": { "type": "string", "description": "Webhook name. Max length: 128 chars.", - "default": null, "x-example": "<NAME>" }, "url": { "type": "string", "description": "Webhook URL.", - "default": null, "x-example": null }, "events": { "type": "array", "description": "Events list. Maximum of 100 events are allowed.", - "default": null, "x-example": null, "items": { "type": "string" @@ -59041,7 +58303,6 @@ "x-appwrite": { "method": "delete", "group": null, - "weight": 580, "cookies": false, "type": "", "demo": "webhooks\/delete.md", @@ -59104,7 +58365,6 @@ "x-appwrite": { "method": "updateSecret", "group": null, - "weight": 582, "cookies": false, "type": "", "demo": "webhooks\/update-secret.md", @@ -59147,7 +58407,6 @@ "secret": { "type": "string", "description": "Webhook secret key. If not provided, a new key will be generated automatically. Key must be at least 8 characters long, and at max 256 characters.", - "default": null, "x-example": "<SECRET>", "x-nullable": true } @@ -59910,6 +59169,35 @@ "executions": "" } }, + "projectList": { + "description": "Projects List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of projects that matched your query.", + "x-example": 5, + "format": "int32" + }, + "projects": { + "type": "array", + "description": "List of projects.", + "items": { + "type": "object", + "$ref": "#\/definitions\/project" + }, + "x-example": "" + } + }, + "required": [ + "total", + "projects" + ], + "example": { + "total": 5, + "projects": "" + } + }, "webhookList": { "description": "Webhooks List", "type": "object", @@ -66834,6 +66122,12 @@ "x-example": 17890, "format": "int32" }, + "sizeActual": { + "type": "integer", + "description": "File actual stored size in bytes after compression and\/or encryption.", + "x-example": 12345, + "format": "int32" + }, "chunksTotal": { "type": "integer", "description": "Total number of chunks available", @@ -66867,6 +66161,7 @@ "signature", "mimeType", "sizeOriginal", + "sizeActual", "chunksTotal", "chunksUploaded", "encryption", @@ -66884,6 +66179,7 @@ "signature": "5d529fd02b544198ae075bd57c1762bb", "mimeType": "image\/png", "sizeOriginal": 17890, + "sizeActual": 12345, "chunksTotal": 17890, "chunksUploaded": 17890, "encryption": true, @@ -67398,6 +66694,28 @@ "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", "x-example": false }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "x-example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "x-example": [ + "src\/**", + "!docs\/**" + ] + }, "buildSpecification": { "type": "string", "description": "Machine specification for deployment builds.", @@ -67452,6 +66770,8 @@ "providerBranch", "providerRootDirectory", "providerSilentMode", + "providerBranches", + "providerPaths", "buildSpecification", "runtimeSpecification", "buildRuntime", @@ -67486,6 +66806,14 @@ "providerBranch": "main", "providerRootDirectory": "sites\/helloWorld", "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], "buildSpecification": "s-1vcpu-512mb", "runtimeSpecification": "s-1vcpu-512mb", "buildRuntime": "node-22", @@ -67652,6 +66980,28 @@ "description": "Is VCS (Version Control System) connection is in silent mode? When in silence mode, no comments will be posted on the repository pull or merge requests", "x-example": false }, + "providerBranches": { + "type": "array", + "description": "List of branch name patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all branches.", + "items": { + "type": "string" + }, + "x-example": [ + "main", + "feat\/*" + ] + }, + "providerPaths": { + "type": "array", + "description": "List of file path patterns that trigger automatic deployments. Supports glob wildcards. Empty list deploys on all file changes.", + "items": { + "type": "string" + }, + "x-example": [ + "src\/**", + "!docs\/**" + ] + }, "buildSpecification": { "type": "string", "description": "Machine specification for deployment builds.", @@ -67692,6 +67042,8 @@ "providerBranch", "providerRootDirectory", "providerSilentMode", + "providerBranches", + "providerPaths", "buildSpecification", "runtimeSpecification" ], @@ -67724,6 +67076,14 @@ "providerBranch": "main", "providerRootDirectory": "functions\/helloWorld", "providerSilentMode": false, + "providerBranches": [ + "main", + "feat\/*" + ], + "providerPaths": [ + "src\/**", + "!docs\/**" + ], "buildSpecification": "s-1vcpu-512mb", "runtimeSpecification": "s-1vcpu-512mb" } @@ -68462,7 +67822,8 @@ "items": { "type": "object", "$ref": "#\/definitions\/billingLimits" - } + }, + "x-nullable": true }, "blocks": { "type": "array", @@ -68504,7 +67865,6 @@ "services", "protocols", "region", - "billingLimits", "blocks", "consoleAccessedAt" ], @@ -73079,24 +72439,24 @@ "description": "Event ID.", "x-example": "5e5ea5c16897e" }, - "userType": { + "actorType": { "type": "string", - "description": "User type.", + "description": "Actor type.", "x-example": "user" }, - "userId": { + "actorId": { "type": "string", - "description": "User ID.", + "description": "Actor ID.", "x-example": "610fc2f985ee0" }, - "userEmail": { + "actorEmail": { "type": "string", - "description": "User Email.", + "description": "Actor Email.", "x-example": "john@appwrite.io" }, - "userName": { + "actorName": { "type": "string", - "description": "User Name.", + "description": "Actor Name.", "x-example": "John Doe" }, "resourceParent": { @@ -73237,10 +72597,10 @@ }, "required": [ "$id", - "userType", - "userId", - "userEmail", - "userName", + "actorType", + "actorId", + "actorEmail", + "actorName", "resourceParent", "resourceType", "resourceId", @@ -73271,10 +72631,10 @@ ], "example": { "$id": "5e5ea5c16897e", - "userType": "user", - "userId": "610fc2f985ee0", - "userEmail": "john@appwrite.io", - "userName": "John Doe", + "actorType": "user", + "actorId": "610fc2f985ee0", + "actorEmail": "john@appwrite.io", + "actorName": "John Doe", "resourceParent": "database\/ID", "resourceType": "collection", "resourceId": "610fc2f985ee0", @@ -73406,68 +72766,66 @@ } }, "billingLimits": { - "description": "BillingLimits", + "description": "Limits", "type": "object", "properties": { "bandwidth": { "type": "integer", "description": "Bandwidth limit", "x-example": 5, - "format": "int32" + "format": "int32", + "x-nullable": true }, "storage": { "type": "integer", "description": "Storage limit", "x-example": 150, - "format": "int32" + "format": "int32", + "x-nullable": true }, "users": { "type": "integer", "description": "Users limit", "x-example": 200000, - "format": "int32" + "format": "int32", + "x-nullable": true }, "executions": { "type": "integer", "description": "Executions limit", "x-example": 750000, - "format": "int32" + "format": "int32", + "x-nullable": true }, "GBHours": { "type": "integer", "description": "GBHours limit", "x-example": 100, - "format": "int32" + "format": "int32", + "x-nullable": true }, "imageTransformations": { "type": "integer", "description": "Image transformations limit", "x-example": 100, - "format": "int32" + "format": "int32", + "x-nullable": true }, "authPhone": { "type": "integer", "description": "Auth phone limit", "x-example": 10, - "format": "int32" + "format": "int32", + "x-nullable": true }, "budgetLimit": { "type": "integer", "description": "Budget limit percentage", "x-example": 100, - "format": "int32" + "format": "int32", + "x-nullable": true } }, - "required": [ - "bandwidth", - "storage", - "users", - "executions", - "GBHours", - "imageTransformations", - "authPhone", - "budgetLimit" - ], "example": { "bandwidth": 5, "storage": 150, @@ -73827,35 +73185,6 @@ "userAgent": "AppwriteSDK\/1.0" } }, - "usageEventList": { - "description": "Usage events list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of events that matched your query.", - "x-example": 5, - "format": "int32" - }, - "events": { - "type": "array", - "description": "List of events.", - "items": { - "type": "object", - "$ref": "#\/definitions\/usageEvent" - }, - "x-example": "" - } - }, - "required": [ - "total", - "events" - ], - "example": { - "total": 5, - "events": "" - } - }, "usageGauge": { "description": "usageGauge", "type": "object", @@ -73888,35 +73217,6 @@ "time": "2026-04-09T12:00:00.000+00:00" } }, - "usageGaugeList": { - "description": "Usage gauges list", - "type": "object", - "properties": { - "total": { - "type": "integer", - "description": "Total number of gauges that matched your query.", - "x-example": 5, - "format": "int32" - }, - "gauges": { - "type": "array", - "description": "List of gauges.", - "items": { - "type": "object", - "$ref": "#\/definitions\/usageGauge" - }, - "x-example": "" - } - }, - "required": [ - "total", - "gauges" - ], - "example": { - "total": 5, - "gauges": "" - } - }, "activityEventList": { "description": "Activity event list", "type": "object", @@ -74032,6 +73332,64 @@ "total": 5, "restorations": "" } + }, + "usageEventList": { + "description": "Usage events list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of events that matched your query.", + "x-example": 5, + "format": "int32" + }, + "events": { + "type": "array", + "description": "List of events.", + "items": { + "type": "object", + "$ref": "#\/definitions\/usageEvent" + }, + "x-example": "" + } + }, + "required": [ + "total", + "events" + ], + "example": { + "total": 5, + "events": "" + } + }, + "usageGaugeList": { + "description": "Usage gauges list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of gauges that matched your query.", + "x-example": 5, + "format": "int32" + }, + "gauges": { + "type": "array", + "description": "List of gauges.", + "items": { + "type": "object", + "$ref": "#\/definitions\/usageGauge" + }, + "x-example": "" + } + }, + "required": [ + "total", + "gauges" + ], + "example": { + "total": 5, + "gauges": "" + } } }, "externalDocs": {